WEBVTT


NOTE Linux is the library that Emacs uses to talk to my hardware

00:00:00.531 --> 00:00:03.273
[Sacha]: At the moment, Linux is the library that

00:00:03.353 --> 00:00:04.794
Emacs uses to talk to my hardware.

NOTE Highlight: AI churn

00:00:05.575 --> 00:00:09.638
[Sacha]: I'm going to sit out all the AI churn.

00:00:09.918 --> 00:00:11.019
I'll figure that out.

00:00:11.559 --> 00:00:13.861
And then I will check back in next year, a couple

00:00:13.881 --> 00:00:16.643
of years, maybe never, and see if there's

00:00:16.683 --> 00:00:17.704
anything else I can help with.

NOTE Highlight: Maybe your editor makes you grumpy

00:00:17.724 --> 00:00:18.964
[Sacha]: Hypothesis number two.

00:00:19.044 --> 00:00:20.626
Maybe your editor makes you grumpy.

NOTE Highlight: Words are hard

00:00:21.426 --> 00:00:24.167
[Sacha]: Turns out I cannot say start streaming reliably.

00:00:24.227 --> 00:00:25.808
Sometimes I say start screaming.

NOTE Highlight: shelling out to Emacs from Vim

00:00:26.689 --> 00:00:28.650
And the guy hemmed and hawed and eventually

00:00:28.710 --> 00:00:31.331
admitted that he had actually shelled out the

00:00:31.431 --> 00:00:34.973
Emacs to run the code and evaluate it and then

00:00:34.993 --> 00:00:37.814
get the image, get the layout back and then put

00:00:37.854 --> 00:00:38.674
it in Vim.

NOTE Highlight: My husband

00:00:39.355 --> 00:00:41.876
I came here for my masters and stuck around

00:00:41.936 --> 00:00:44.277
because of my husband who is coincidentally a

00:00:44.397 --> 00:00:45.278
Neovim user.

NOTE Highlight: automation

00:00:46.318 --> 00:00:48.979
[Sacha]: I find myself automating things that really

00:00:49.899 --> 00:00:52.420
aren't technically justified by how often I do

00:00:52.500 --> 00:00:55.541
it, but because all those little bits of code add

00:00:55.681 --> 00:01:00.062
up and they become useful in a combinatorial way.

NOTE Highlight: Thumbnail: my daughter rates it 0 out of 5

00:01:00.782 --> 00:01:02.623
So you got like a zero out of five.

00:01:05.724 --> 00:01:06.964
[Linkarzu]: A zero out of five.

00:01:07.404 --> 00:01:10.345
And it's one of my favorite ones, Sacha, come on.

NOTE Sacha's idea for monitoring six EmacsConf calls at once

00:01:14.658 --> 00:01:17.520
[Sacha]: In fact, I have EmacsConf coming up, right?

00:01:17.600 --> 00:01:19.762
And sometimes we get to the point of having six

00:01:19.822 --> 00:01:21.123
simultaneous conversations.

00:01:22.644 --> 00:01:24.505
I might have to actually monitor all of them.

00:01:24.765 --> 00:01:27.147
So I'm thinking of making myself a little overlay

00:01:27.167 --> 00:01:32.151
that lets me tab to the different web conferences

00:01:32.271 --> 00:01:34.633
and then do something fancy with the audio stream

00:01:34.653 --> 00:01:36.834
so I can isolate it and maybe have some speech

00:01:36.874 --> 00:01:38.476
recognition running on all of them in the

00:01:38.516 --> 00:01:40.957
background so that if somebody says, "Help, Sacha!",

00:01:41.818 --> 00:01:43.339
I can just pop them right up.

00:01:44.740 --> 00:01:47.001
[Linkarzu]: Oh yeah, quite interesting.

00:01:47.041 --> 00:01:51.143
So I don't like doing an intro and all of that

00:01:51.203 --> 00:01:53.844
stuff, so thank you for being here.

00:01:53.864 --> 00:01:55.925
Sacha, this is the first time that you've been on

00:01:55.945 --> 00:01:56.786
the channel, right?

00:01:57.606 --> 00:01:58.506
[Sacha]: Yeah, yeah.

00:01:58.526 --> 00:02:00.808
I mean, you've had plenty of time, so you've

00:02:01.348 --> 00:02:03.989
certainly crossed over into the Emacs community

00:02:04.049 --> 00:02:04.769
and things like that.

00:02:05.410 --> 00:02:09.311
But I'm not sure, am I the oldest Emacs user

00:02:09.351 --> 00:02:10.172
you've had so far?

00:02:11.338 --> 00:02:13.420
[Linkarzu]: The Professor, he's like 80 years old.

00:02:13.620 --> 00:02:16.363
But you're not talking about age, your age, but

00:02:16.383 --> 00:02:18.145
you're talking about Emacs, right?

00:02:18.585 --> 00:02:19.685
[Sacha]: [He would] definitely have been

00:02:19.686 --> 00:02:20.888
using it for longer than I am.

00:02:20.928 --> 00:02:21.948
I'm a relative newbie

00:02:21.949 --> 00:02:23.570
compared to those folks, right?

00:02:24.031 --> 00:02:25.893
[Linkarzu]: No, I was just playing.

00:02:26.273 --> 00:02:28.675
I always play that he's like 80 years old, but

00:02:28.916 --> 00:02:29.897
no, he's not.

00:02:30.517 --> 00:02:31.919
You know the Professor by any chance?

00:02:32.627 --> 00:02:34.908
[Sacha]: I came across some of your videos

00:02:34.909 --> 00:02:35.249
with him.

00:02:35.529 --> 00:02:35.889
[Linkarzu]: Okay.

00:02:36.150 --> 00:02:39.532
That is why I found out about you.

00:02:39.632 --> 00:02:41.493
Because he was like, you should check Sacha

00:02:41.533 --> 00:02:42.154
Chua's blog.

00:02:42.174 --> 00:02:44.516
And I was like, who is Sacha?

00:02:44.716 --> 00:02:46.637
You know, because I knew Prot, I knew, you know,

00:02:46.657 --> 00:02:50.340
the system crafters, DistroTube, stuff like that.

00:02:50.400 --> 00:02:52.481
But he is the one that mentioned Sacha.

00:02:52.541 --> 00:02:54.443
And I was like, okay... How do you pronounce your

00:02:54.483 --> 00:02:55.043
name, by the way?

00:02:55.223 --> 00:02:56.224
Is it Sacha?

00:02:56.444 --> 00:02:56.885
Sacha?

00:02:57.165 --> 00:02:58.005
Am I saying it wrong?

00:02:58.826 --> 00:03:01.432
[Sacha]: Sacha Chua.

00:03:01.632 --> 00:03:02.573
[Linkarzu]: Sacha Chua.

00:03:02.793 --> 00:03:04.754
Okay, okay.

00:03:04.794 --> 00:03:06.935
So, the professor is definitely not 80.

NOTE frazzor749

00:03:07.355 --> 00:03:10.937
You see what frazzor749... frazzor749 is an Emacs user,

00:03:11.137 --> 00:03:12.158
the guy in chat there.

00:03:12.778 --> 00:03:13.819
[Sacha]: Oh yeah!

00:03:14.519 --> 00:03:16.400
Yeah, yeah, frazzor749.

00:03:16.520 --> 00:03:17.120
[Linkarzu]: I'm going to

00:03:17.121 --> 00:03:18.441
convert him to Neovim.

00:03:18.621 --> 00:03:21.403
[Sacha]: No, he's been helping me

00:03:21.423 --> 00:03:21.983
with French.

00:03:22.203 --> 00:03:22.844
Leave him alone.

00:03:22.864 --> 00:03:23.364
He's mine.

00:03:23.384 --> 00:03:23.984
[Linkarzu]: Okay, you know him?

00:03:24.164 --> 00:03:24.544
You know him?

00:03:24.985 --> 00:03:25.465
[Sacha]: Hands off.

NOTE Intro

00:03:27.525 --> 00:03:31.931
[Linkarzu]: Okay, let me just play a little video of what I

00:03:31.991 --> 00:03:33.493
know about you.

00:03:33.753 --> 00:03:35.055
You're going to see it in the background.

00:03:35.556 --> 00:03:37.538
It's going to be a little bit confusing, okay?

00:03:37.999 --> 00:03:40.642
But this is just so that people have a little bit

00:03:40.803 --> 00:03:43.867
of context on who Sacha is, okay?

00:03:44.187 --> 00:03:45.248
[Sacha]: I'll try not to laugh too much.

00:03:45.909 --> 00:03:48.712
[Linkarzu]: Okay, so what do I know about Sacha?

00:03:49.132 --> 00:03:50.254
She has a YouTube channel.

00:03:50.594 --> 00:03:53.998
You have close to 5000 subscribers, right?

00:03:54.398 --> 00:03:57.721
Also, you have a blog, which is pretty popular

00:03:57.982 --> 00:03:58.322
out there.

00:03:59.383 --> 00:04:03.407
You do EmacsConf, which I don't know what it is.

00:04:03.647 --> 00:04:06.189
I'm curious to hear about it a little bit more.

00:04:06.830 --> 00:04:08.511
And I've seen your livestreams.

00:04:08.932 --> 00:04:10.893
I've seen that you speak in French.

00:04:10.973 --> 00:04:14.056
So I'm like, is French her main language?

00:04:14.116 --> 00:04:16.458
Is English her main language?

00:04:18.140 --> 00:04:21.101
You've been doing Emacs for, you mentioned, 25

00:04:21.221 --> 00:04:21.523
years.

00:04:21.642 --> 00:04:22.123
Is that right?

00:04:23.104 --> 00:04:23.865
[Sacha]: Yeah, it's about...

00:04:24.522 --> 00:04:25.502
[Linkarzu]: Okay, okay.

00:04:26.123 --> 00:04:28.943
And I heard about you because of the professor.

00:04:29.223 --> 00:04:32.745
He mentioned your blog in one of the live streams

00:04:32.885 --> 00:04:33.285
we had.

00:04:34.285 --> 00:04:35.986
And I think that's about it.

00:04:36.406 --> 00:04:38.406
I don't know, like, a lot more.

00:04:38.686 --> 00:04:42.247
And that's what this call is for, you know, to

00:04:42.748 --> 00:04:44.748
get to know you a little bit more.

00:04:44.968 --> 00:04:47.409
Like, on the Neovim side of things, I don't know

00:04:47.469 --> 00:04:48.549
if a lot of people know you.

00:04:48.589 --> 00:04:50.930
On the Emacs side of things, you seem to be

00:04:50.990 --> 00:04:51.630
pretty popular.

00:04:51.850 --> 00:04:53.271
So...

00:04:54.725 --> 00:04:56.249
You want to share a little bit about you.

00:04:56.510 --> 00:04:58.033
Like, who is Sacha?

00:04:58.334 --> 00:04:59.718
You can share your screen if you want.

00:04:59.818 --> 00:05:01.522
You can share your blog post if you have some

00:05:01.663 --> 00:05:02.806
notes or something like that.

00:05:03.327 --> 00:05:03.868
It's up to you.

00:05:04.931 --> 00:05:06.172
[Sacha]: I think you've already covered all the

00:05:06.192 --> 00:05:06.752
basics.

NOTE Weekly news

00:05:07.453 --> 00:05:10.154
I've been enjoying playing around with Emacs for

00:05:10.174 --> 00:05:14.017
the past 25 years and I love putting together a

00:05:14.077 --> 00:05:14.897
weekly newsletter.

00:05:14.937 --> 00:05:17.619
I'm going to try to convince you or someone in

00:05:17.659 --> 00:05:19.420
your community to put together a newsletter like

00:05:19.460 --> 00:05:22.862
that for Vim because it's such a great way to

00:05:22.902 --> 00:05:24.623
come across all the interesting things that

00:05:24.663 --> 00:05:25.564
people are sharing.

NOTE EmacsConf

00:05:27.245 --> 00:05:31.169
Because I also want to encourage people to get

00:05:31.210 --> 00:05:33.172
cool demos out of their head and off their

00:05:33.212 --> 00:05:35.634
computers and into a form other people can watch.

00:05:36.235 --> 00:05:39.158
I help organize EmacsConf, which is a yearly

00:05:40.139 --> 00:05:40.840
Emacs party.

00:05:41.917 --> 00:05:44.200
We're just sharing the cool things that we've

00:05:44.220 --> 00:05:46.322
come up with and meeting people with similar

00:05:46.403 --> 00:05:46.863
interests.

00:05:47.344 --> 00:05:48.185
It's all online.

00:05:49.266 --> 00:05:52.630
And then I get to turn all of those into captions

00:05:52.690 --> 00:05:54.672
so that people can search them afterwards.

00:05:54.972 --> 00:05:55.633
It's a lot of fun.

00:05:56.054 --> 00:05:57.475
[Linkarzu]: Is it like a live stream?

00:05:57.595 --> 00:05:58.857
Is it like a video thing?

00:05:58.937 --> 00:05:59.618
Or what is it?

00:06:00.150 --> 00:06:02.632
[Sacha]: Yeah, we're live streaming on December

00:06:02.672 --> 00:06:03.713
12 and 13.

00:06:04.814 --> 00:06:06.595
We have two days of two tracks.

00:06:06.615 --> 00:06:09.597
That's how much people want to talk about Emacs.

00:06:10.518 --> 00:06:13.540
It's kind of like NeovimConf, except we actually

00:06:13.600 --> 00:06:14.880
run everything on time.

00:06:14.880 --> 00:06:15.780
[Linkarzu]: Oh!

00:06:17.502 --> 00:06:18.503
Who copied who?

00:06:18.743 --> 00:06:20.623
Did you copy Neovim or Neovim copied?

00:06:20.643 --> 00:06:23.344
[Sacha]: No, this iteration has been since 2019.

00:06:23.384 --> 00:06:25.325
The first one was in 2013.

00:06:27.165 --> 00:06:29.926
So this one's been running since 2019 completely

00:06:30.006 --> 00:06:31.807
online and completely free.

00:06:32.267 --> 00:06:34.467
[Linkarzu]: And where can we watch it?

00:06:35.348 --> 00:06:38.088
Is it in your channel or is there an official

00:06:38.288 --> 00:06:39.029
YouTube channel?

00:06:39.269 --> 00:06:39.809
[Sacha]: All right.

00:06:40.689 --> 00:06:43.592
So we have like this whole thing, right?

00:06:44.393 --> 00:06:46.615
It can be watched using entirely free and open

00:06:46.635 --> 00:06:47.375
source software.

00:06:47.796 --> 00:06:49.416
If you go to https://emacsconf.org,

00:06:49.417 --> 00:06:50.618
you can find all the details.

00:06:50.678 --> 00:06:53.681
So people can watch it using MPV or VLC or

00:06:53.701 --> 00:06:54.121
whatever.

00:06:54.181 --> 00:06:55.923
We'll stream it over Icecast.

00:06:56.323 --> 00:06:58.105
But of course, since a lot of people come through

00:06:58.145 --> 00:07:00.227
YouTube, I'll also restream it through the

00:07:00.347 --> 00:07:01.468
EmacsConf channel.

00:07:02.168 --> 00:07:04.871
[Linkarzu]: Oh, so it has a YouTube channel,

00:07:05.091 --> 00:07:05.791
EmacsConf.

00:07:06.590 --> 00:07:09.015
[Sacha]: Yes, which we don't actually talk about

00:07:09.075 --> 00:07:11.400
much, but if you search for it, you'll find it.

00:07:12.772 --> 00:07:13.293
[Linkarzu]: Where is it?

00:07:13.513 --> 00:07:14.073
Is it here?

00:07:14.133 --> 00:07:15.635
[Sacha]: I do not need to tell you how to use

00:07:15.675 --> 00:07:17.576
YouTube to search for things.

00:07:17.656 --> 00:07:17.716
[Linkarzu]: Oh!

00:07:18.557 --> 00:07:20.219
Oh, man.

00:07:20.739 --> 00:07:21.219
Okay.

00:07:21.740 --> 00:07:23.642
Let me see.

00:07:23.762 --> 00:07:25.483
[Sacha]: Now that it's possible to use Canvas

00:07:25.924 --> 00:07:28.105
inside Emacs to play things, people have been

00:07:28.125 --> 00:07:29.507
playing Doom in Emacs.

00:07:30.528 --> 00:07:33.110
I'm pretty sure someone could probably write a

00:07:33.170 --> 00:07:36.032
player to watch EmacsConf from within Emacs,

00:07:36.112 --> 00:07:37.454
which I think would be super cool.

00:07:39.124 --> 00:07:39.645
[Linkarzu]: Oh, really?

00:07:39.965 --> 00:07:40.926
Okay, it's crazy.

00:07:41.146 --> 00:07:42.827
I think, well, people have been

00:07:42.828 --> 00:07:44.690
playing Doom on Neovim.

00:07:44.930 --> 00:07:47.153
Like, we won that one, I think.

00:07:50.629 --> 00:07:51.750
Okay, let me see.

00:07:51.770 --> 00:07:54.934
EmacsConf, so it has its own YouTube channel.

00:07:55.454 --> 00:07:57.757
So, okay.

00:07:58.197 --> 00:08:00.639
This is all the previous events,

00:08:00.640 --> 00:08:02.460
right? Interesting.

00:08:02.560 --> 00:08:05.064
[Sacha]: Yeah, those are my notes and how it's run.

00:08:05.545 --> 00:08:06.886
It's surprising...

00:08:06.986 --> 00:08:09.129
Going back to Neovim...

00:08:10.049 --> 00:08:11.189
There was a NeovimConf

00:08:11.190 --> 00:08:12.070
and there hasn't been one,

00:08:12.110 --> 00:08:12.791
what's up with that?

00:08:12.831 --> 00:08:14.371
Come on, you know, you can do it again.

00:08:15.352 --> 00:08:17.113
Although actually I should probably be bugging

00:08:17.373 --> 00:08:20.194
Prime and TJ about that, maybe?

00:08:21.175 --> 00:08:23.556
Anyway, so our experience with EmacsConf is that

00:08:23.616 --> 00:08:26.858
it's totally possible to run a very fun online

00:08:26.898 --> 00:08:29.719
conference about a text editor for a shoestring

00:08:29.759 --> 00:08:32.799
budget and totally volunteer labor.

00:08:34.616 --> 00:08:35.217
Worth a try.

00:08:35.738 --> 00:08:36.078
[Linkarzu]: Okay.

00:08:36.398 --> 00:08:38.279
When was the last NeovimConf?

00:08:38.339 --> 00:08:39.260
By the way, you're right.

NOTE
#+COMMENT: Funny, maybe clip this 00:06:04.814 --> 00:06:15.780 and 00:08:39.560 --> 00:08:50.786 together

00:08:39.560 --> 00:08:42.060
Last year, I think there was no,

00:08:42.061 --> 00:08:43.761
there was not a NeovimConf.

00:08:43.802 --> 00:08:45.923
I'm not exactly sure when the last one was.

00:08:45.943 --> 00:08:46.344
I don't know.

00:08:46.384 --> 00:08:47.864
[Sacha]: Maybe it's because you lost bashbunni

00:08:47.904 --> 00:08:48.945
and then everyone gave up hope.

00:08:49.585 --> 00:08:52.421
[Linkarzu]: Right?

00:08:52.541 --> 00:08:53.922
That is actually true.

00:08:54.423 --> 00:08:57.264
And who is invited for this EmacsConf,

00:08:57.265 --> 00:08:57.926
the next one?

00:08:57.986 --> 00:08:58.466
[Sacha]: Everyone!

00:08:58.847 --> 00:09:00.268
We actually get a lot of people who are

00:09:00.288 --> 00:09:02.130
interested in other editors as well, and

00:09:02.170 --> 00:09:04.111
sometimes they present things too.

00:09:04.812 --> 00:09:07.414
I can probably squeeze an extra talk into the

00:09:07.454 --> 00:09:09.256
schedule if I really need, you know, if someone

00:09:09.276 --> 00:09:10.237
comes up with a really good one.

00:09:10.717 --> 00:09:15.181
But in the past, we've had talks about Guilemacs,

00:09:16.102 --> 00:09:18.443
remacs, which is a Rust port,

00:09:18.444 --> 00:09:19.385
things like that too.

NOTE Cross-pollination

00:09:20.225 --> 00:09:22.428
But of course most of it is Emacs and Org Mode.

00:09:22.448 --> 00:09:25.311
I have this afternoon of very interesting

00:09:25.391 --> 00:09:28.754
Org Mode talks and I want to attend all of them.

00:09:29.815 --> 00:09:31.837
As I mentioned, bashbunni is speaking there, but

00:09:31.937 --> 00:09:35.761
also Ihor Radchenko, the current maintainer of Org

00:09:35.781 --> 00:09:38.364
Mode has a talk on how he deals with

00:09:39.525 --> 00:09:41.669
an overwhelming task inbox and lots of stresses

00:09:42.130 --> 00:09:44.794
and how he makes sense of that in Org.

00:09:44.834 --> 00:09:48.220
And now that heisenbug is working on org.nvim, a

00:09:48.240 --> 00:09:50.283
lot of the workflow things might be easy to

00:09:50.323 --> 00:09:51.685
translate into your setup.

00:09:52.153 --> 00:09:52.553
[Linkarzu]: Exactly.

00:09:52.593 --> 00:09:54.154
What do you think about that betrayal?

00:09:54.574 --> 00:09:57.736
I asked Prot, you know, because Heisenbug is

00:09:57.756 --> 00:09:59.376
betraying Emacs.

00:09:59.436 --> 00:10:00.857
[Sacha]: No, no, I think it's wonderful.

00:10:01.237 --> 00:10:03.478
I think it's fantastic to have more people be

00:10:03.538 --> 00:10:05.879
able to take these interesting workflow ideas and

00:10:05.919 --> 00:10:08.401
experiment with them in the environment that they

00:10:08.521 --> 00:10:11.002
particularly like or are familiar with.

00:10:11.422 --> 00:10:15.264
So yeah, I mean, you tried Emacs, you gave it a

00:10:15.304 --> 00:10:17.764
a fair shake over several weeks.

00:10:18.125 --> 00:10:20.985
You're finding that your local maximum of

00:10:21.085 --> 00:10:24.086
enjoying how you've set up your Neovim shortcuts

00:10:24.126 --> 00:10:25.726
and your environment and all that stuff still

00:10:25.766 --> 00:10:26.687
works out better for you.

00:10:27.087 --> 00:10:28.047
That's fantastic.

00:10:28.587 --> 00:10:31.828
I'd love to see if there are any cool ideas that

00:10:31.868 --> 00:10:34.288
you want to steal from either the things that

00:10:34.308 --> 00:10:36.589
you've explored or from a conversation or

00:10:36.689 --> 00:10:39.309
anywhere else that you can translate into your

00:10:39.389 --> 00:10:39.910
environment.

00:10:40.370 --> 00:10:43.410
Then we can then go steal those ideas back

00:10:43.510 --> 00:10:44.571
with extra icing on top,

00:10:46.331 --> 00:10:48.012
which the Emacs community loves to do

00:10:48.013 --> 00:10:48.954
on a regular basis.

00:10:49.314 --> 00:10:50.895
[Linkarzu]: Yeah, I see that a lot.

00:10:51.756 --> 00:10:54.879
Stuff porting over either from Emacs to Neovim or

00:10:54.919 --> 00:10:56.540
from Neovim to Emacs, you know?

00:10:56.640 --> 00:10:58.322
Like, yeah.

00:10:58.502 --> 00:10:59.903
I think it's cool, you know?

00:11:00.404 --> 00:11:02.145
I also agree to that, 100%.

00:11:02.365 --> 00:11:06.369
If Neovim becomes better, Emacs becomes better and

00:11:06.389 --> 00:11:07.650
the other way around, right?

00:11:08.010 --> 00:11:09.091
[Sacha]: Yeah, absolutely.

00:11:09.431 --> 00:11:12.392
And you know it's entirely possible that once

00:11:12.432 --> 00:11:15.654
people get used to using org.nvim and they're

00:11:15.674 --> 00:11:19.636
like capturing new notes and tasks from their

00:11:19.696 --> 00:11:22.097
mail, because you have notmuch.nvim, and their

00:11:22.137 --> 00:11:24.138
feed reader, because you also have a feed reader

00:11:24.198 --> 00:11:26.819
inside nvim, and then they're like, oh you know I

00:11:26.859 --> 00:11:30.701
want to do this from my whatever it is and either

00:11:30.741 --> 00:11:33.763
you'll be able to vibe-code or actually write

00:11:34.103 --> 00:11:34.623
such a plugin,

00:11:34.863 --> 00:11:36.384
or you'll be like, you know, why don't I just use

00:11:36.404 --> 00:11:38.386
that other editor that already has five

00:11:38.426 --> 00:11:42.469
different implementations of this?

00:11:42.849 --> 00:11:45.171
[Linkarzu]: Yeah, I think that is a good entry

00:11:45.211 --> 00:11:46.452
point into Emacs.

00:11:46.512 --> 00:11:49.655
The org.nvim plugin, it's going

00:11:49.695 --> 00:11:50.836
to help with friction.

00:11:50.936 --> 00:11:52.937
People that are in Neovim are going to start

00:11:52.957 --> 00:11:56.720
wondering, okay, what else is Emacs capable of,

00:11:57.100 --> 00:11:57.381
right?

00:11:57.561 --> 00:11:59.963
And they will probably finally do the switch.

NOTE Not Emacs vs Neovim; it's about what we can imagine

00:12:01.123 --> 00:12:03.746
[Sacha]: And really, it's not so much an Emacs

00:12:03.766 --> 00:12:05.007
versus Neovim thing, right?

00:12:05.047 --> 00:12:07.228
It's more about what can we imagine?

00:12:07.489 --> 00:12:08.670
What can we try out?

00:12:08.750 --> 00:12:11.452
How can we build our tools to reduce the friction

00:12:11.532 --> 00:12:13.974
and make more things possible and more fun?

00:12:14.755 --> 00:12:16.336
[Linkarzu]: Yeah, 100%.

00:12:16.976 --> 00:12:19.378
And I have a question for you.

00:12:19.398 --> 00:12:19.639
[Sacha]: Yes.

NOTE What's the catch?

00:12:20.552 --> 00:12:22.635
[Linkarzu]: I live in the third world, and we

00:12:22.675 --> 00:12:25.198
have a saying here, if it sounds too good to be

00:12:25.238 --> 00:12:27.180
true, it probably is not.

00:12:27.620 --> 00:12:30.043
Like, what's the catch with Emacs?

00:12:30.364 --> 00:12:31.525
Why do you do all this?

00:12:31.825 --> 00:12:35.490
Like, what do you gain out of all of this work

00:12:35.530 --> 00:12:36.631
that you put into Emacs?

00:12:37.011 --> 00:12:38.113
And why do you do it?

00:12:39.412 --> 00:12:40.313
[Sacha]: It tickles my brain.

00:12:40.413 --> 00:12:41.173
It's just fun.

00:12:45.576 --> 00:12:48.458
Ever since I started, I've been fascinated by how

00:12:49.159 --> 00:12:53.961
I can both shape the tools to fit my quirks,

00:12:53.962 --> 00:12:56.804
fit the strange things that no software company is

00:12:56.864 --> 00:12:58.005
ever going to anticipate,

00:12:58.525 --> 00:13:01.387
and also, I've always been fascinated by how

00:13:01.567 --> 00:13:02.788
other people do this too.

NOTE Unix Power Tools

00:13:05.659 --> 00:13:07.760
I came from a third world too, right?

00:13:08.100 --> 00:13:09.120
I grew up in Manila.

00:13:09.701 --> 00:13:15.003
And as a 17 or 18 year old student, I was trying

00:13:15.023 --> 00:13:17.324
to read through all the computer science books in

00:13:17.344 --> 00:13:19.245
the very, very small university library.

00:13:19.365 --> 00:13:21.065
Well, it's a big university library for the

00:13:21.085 --> 00:13:23.606
Philippines, but the computer science section was

00:13:23.666 --> 00:13:26.427
only so big because it's hard to order books when

00:13:26.447 --> 00:13:27.048
you're far away.

00:13:27.808 --> 00:13:29.689
And one of those books was Unix Power Tools.

00:13:30.589 --> 00:13:33.430
They had a chapter on Emacs, of course, and one

00:13:33.470 --> 00:13:37.852
of the things in it was just this throwaway

00:13:37.892 --> 00:13:39.752
mention of, oh yeah, if you have plenty of time

00:13:39.772 --> 00:13:41.433
to waste, check out M-x doctor.

00:13:42.433 --> 00:13:43.133
And I was like, what?

00:13:43.634 --> 00:13:46.294
Back then I was, like, what kind of editor has

00:13:46.394 --> 00:13:47.615
this kind of stuff in it?

00:13:48.175 --> 00:13:50.097
As I've gotten to know people and their

00:13:50.177 --> 00:13:52.179
customizations and the things that they've built

00:13:52.199 --> 00:13:54.322
to support their lives, I've just become more and

00:13:54.342 --> 00:13:56.584
more fascinated by what people can do with it.

00:13:57.125 --> 00:13:59.808
So I do a lot of things for free for Emacs

00:14:00.288 --> 00:14:02.630
because it's a wonderful community.

NOTE What is Meta x?

00:14:02.651 --> 00:14:04.673
[Linkarzu]: Okay. What is M-x, by the way?

00:14:05.717 --> 00:14:09.379
[Sacha]: M-x is the totally old way of saying

00:14:09.539 --> 00:14:11.560
Alt X because apparently there were fancy

00:14:11.600 --> 00:14:13.661
keyboards where the Alt key was called Meta back

00:14:13.681 --> 00:14:14.701
then.

00:14:14.901 --> 00:14:18.243
And so M-x or Alt X is the way you call

00:14:18.283 --> 00:14:19.964
commands by name if you don't remember the

00:14:19.984 --> 00:14:21.685
keyboard shortcut or if they don't have a

00:14:21.705 --> 00:14:23.045
keyboard shortcut in the first place.

00:14:23.306 --> 00:14:23.606
[Linkarzu]: Okay.

NOTE Searching handwritten sketches: Evernote to ripgrep

00:14:24.026 --> 00:14:25.787
In the video that played at the beginning when I

00:14:25.887 --> 00:14:27.807
was talking about

00:14:27.808 --> 00:14:29.307
what I know about you,

00:14:29.308 --> 00:14:32.090
one of your most popular videos is Evernote.

00:14:32.710 --> 00:14:34.694
Like, what's up with that?

00:14:35.416 --> 00:14:35.877
You know?

00:14:36.318 --> 00:14:38.302
I guess it started before Emacs, right?

00:14:38.998 --> 00:14:41.219
[Sacha]: No, no, that was actually in between.

00:14:41.379 --> 00:14:43.639
So around the time that I was doing a lot of

00:14:43.699 --> 00:14:46.860
drawings, I wanted to figure out if there was a

00:14:46.900 --> 00:14:48.900
way that I could search through my drawings.

00:14:49.020 --> 00:14:53.461
Evernote at that time had a way to just dump all

00:14:53.481 --> 00:14:55.602
of your sketches into it. Then it would do the

00:14:55.702 --> 00:14:58.683
optical character recognition on handwriting, so I

00:14:58.723 --> 00:15:02.464
could theoretically search for text and see which

00:15:02.504 --> 00:15:04.344
sketches of mine had that text in it.

00:15:04.744 --> 00:15:07.404
I find that writing on a tablet

00:15:07.405 --> 00:15:08.605
or on paper scanned in

00:15:09.465 --> 00:15:12.287
is a great way to explore a thought non-linearly,

00:15:13.027 --> 00:15:14.928
because my mind likes to jump all over the place.

00:15:15.608 --> 00:15:17.909
I wanted to be able to search them.

00:15:18.269 --> 00:15:19.910
I couldn't figure out how to do the OCR of

00:15:19.950 --> 00:15:21.751
handwriting all the way back then, because this

00:15:21.791 --> 00:15:23.952
was, what, 2018 or something?

00:15:24.012 --> 00:15:26.113
Actually, older than that.

00:15:26.473 --> 00:15:27.613
Much, much older than that, I think.

00:15:28.774 --> 00:15:30.015
So I used Evernote for that.

00:15:30.215 --> 00:15:33.636
But then, of course, Evernote got worse, like

00:15:33.696 --> 00:15:35.297
many subscription services do.

00:15:35.837 --> 00:15:37.258
I haven't used it in ages.

00:15:38.820 --> 00:15:42.624
But now I can use either Google Cloud Vision

00:15:42.684 --> 00:15:46.008
to do the OCR of my handwriting to get the text

00:15:46.068 --> 00:15:48.231
out of it, or I can use speech recognition to

00:15:48.271 --> 00:15:52.175
just blergh all the text in my sketch and then have

00:15:52.195 --> 00:15:54.038
the plain text that I can just ripgrep through

00:15:54.098 --> 00:15:54.759
or search through.

00:15:55.280 --> 00:15:56.442
[Linkarzu]: I'm interested in that.

00:15:56.462 --> 00:15:59.385
You're going to demo the speech-to-text thing that

00:15:59.405 --> 00:16:00.507
you set up, right?

00:16:00.727 --> 00:16:02.529
You have something... Oh yeah, I totally can.

00:16:02.770 --> 00:16:03.090
Okay.

NOTE Manila to Toronto

00:16:03.471 --> 00:16:05.753
Now, you mentioned that you grew up in Manila,

00:16:06.014 --> 00:16:06.254
right?

00:16:06.534 --> 00:16:09.859
Manila, where do you live right now in case that

00:16:09.879 --> 00:16:10.439
you want to share it?

00:16:10.540 --> 00:16:12.222
I'm not sure if that's private or...

00:16:12.442 --> 00:16:12.842
[Sacha]: I don't know.

00:16:13.602 --> 00:16:14.763
I live in Toronto now.

00:16:14.863 --> 00:16:17.383
I came here for my master's and stuck around

00:16:17.443 --> 00:16:19.784
because of my husband who is coincidentally a

00:16:19.904 --> 00:16:21.764
Neovim user.

00:16:22.605 --> 00:16:23.885
Somehow we managed to get along.

00:16:25.305 --> 00:16:25.825
Yes, yes.

00:16:26.005 --> 00:16:27.726
So I'm here in Toronto and I have learned to put

00:16:27.766 --> 00:16:28.326
up with winter.

00:16:29.126 --> 00:16:29.466
[Linkarzu]: Okay.

00:16:29.826 --> 00:16:31.987
And for how long have you been there in Toronto?

00:16:32.729 --> 00:16:34.450
[Sacha]: I moved here in 2005.

00:16:34.890 --> 00:16:36.911
Actually, my main reason for staying here was the

00:16:36.951 --> 00:16:39.412
Toronto Public Library, which is amazing.

00:16:40.112 --> 00:16:42.874
And then of course, I met

00:16:42.894 --> 00:16:43.774
my husband afterwards.

00:16:44.995 --> 00:16:47.356
[Linkarzu]: He's from Canada?

00:16:48.116 --> 00:16:49.096
[Sacha]: Yes. He's from Canada.

00:16:49.577 --> 00:16:49.877
[Linkarzu]: Okay.

NOTE Not about converting people, but about finding the tools that fit you best

00:16:50.197 --> 00:16:52.678
Now with all of this power and influence that you

00:16:52.738 --> 00:16:56.440
have, why haven't you turned him to the, to the

00:16:56.560 --> 00:16:57.280
Emacs side?

00:16:57.520 --> 00:16:58.961
Is it because Neovim is better?

00:16:59.907 --> 00:17:00.706
[Sacha]: No, it's because

00:17:00.707 --> 00:17:02.088
it's not about that, right?

00:17:02.108 --> 00:17:04.468
It's about figuring out what kind of tool fits

00:17:04.548 --> 00:17:05.428
you really well.

00:17:06.008 --> 00:17:08.809
For us, for example, he picked up using

00:17:08.929 --> 00:17:09.729
Ledger from me.

00:17:10.309 --> 00:17:13.970
I like using the Ledger command line tool, also

00:17:13.990 --> 00:17:17.211
by John Wiegley, to manage my finances.

00:17:17.271 --> 00:17:18.951
That's something he uses as well, because it's

00:17:19.011 --> 00:17:19.570
plain text.

00:17:19.611 --> 00:17:21.892
But he can do that within Vim perfectly fine.

NOTE What do I do right now?

00:17:23.993 --> 00:17:24.935
[Linkarzu]: Okay, okay.

00:17:25.494 --> 00:17:28.396
You went there for your masters.

00:17:28.717 --> 00:17:32.059
What do you do if you want to share with us?

00:17:32.079 --> 00:17:33.720
What do you do right now?

00:17:36.642 --> 00:17:37.543
[Sacha]: I'm retiring today!

00:17:38.824 --> 00:17:41.585
I'm wrapping up my consulting contract.

00:17:41.685 --> 00:17:48.770
So over the past 14 years, I've been on this

00:17:49.170 --> 00:17:51.232
four-year experiment with semi-retirement.

00:17:52.072 --> 00:17:53.651
Sorry, five-year experiment with

00:17:53.652 --> 00:17:54.212
semi-retirement.

00:17:54.252 --> 00:17:56.073
It got interrupted by parenting, and so it just

00:17:56.093 --> 00:17:58.833
kept extending, in which the little bit of

00:17:58.873 --> 00:18:01.174
consulting that I was doing was mostly focused on

00:18:01.274 --> 00:18:02.733
coming up with web prototypes,

00:18:02.734 --> 00:18:05.595
doing some data analysis.

00:18:05.635 --> 00:18:07.615
The data analysis part, my proudest moment was

00:18:07.695 --> 00:18:09.915
figuring out this complicated common table

00:18:09.955 --> 00:18:12.876
expression in PostgreSQL so that you could do

00:18:12.996 --> 00:18:14.455
this recursive query and

00:18:14.456 --> 00:18:16.957
report by organizational chart.

00:18:17.237 --> 00:18:17.757
Fancy stuff.

00:18:18.937 --> 00:18:22.198
Anyway, so this and that, some JavaScript and HTML

00:18:22.218 --> 00:18:24.718
and whatever, to basically take whatever crazy

00:18:24.778 --> 00:18:28.179
ideas my client had and see what I could do to

00:18:28.239 --> 00:18:30.359
automate it or build it on top of this other

00:18:30.399 --> 00:18:32.940
person's system, the vendor's system, which was

00:18:33.000 --> 00:18:36.141
poorly documented but still had a REST API.

00:18:36.301 --> 00:18:38.041
Anyway, that sort of stuff.

NOTE Learning French

00:18:38.281 --> 00:18:40.381
And then for the rest of the time, just tinkering

00:18:40.401 --> 00:18:41.981
around with Emacs, writing things,

00:18:41.982 --> 00:18:42.602
learning French.

00:18:43.242 --> 00:18:44.222
It's not my main language.

00:18:44.262 --> 00:18:45.743
You can probably tell because of my terrible

00:18:45.783 --> 00:18:47.063
pronunciation, but that's okay.

00:18:47.083 --> 00:18:47.763
I'm working on it.

00:18:48.745 --> 00:18:50.410
And I'm learning that because my daughter is

00:18:50.470 --> 00:18:51.292
learning that in school.

00:18:51.332 --> 00:18:53.659
I figured it's good for her to have someone to

00:18:53.679 --> 00:18:54.060
talk to.

00:18:54.722 --> 00:18:56.045
So there are many things to keep me busy.

NOTE Sitting out the AI churn

00:18:57.111 --> 00:18:58.152
[Linkarzu]: Oh, okay, okay.

00:18:58.813 --> 00:19:02.515
So you do consulting then, right?

00:19:02.776 --> 00:19:03.776
[Sacha]: I did consulting.

00:19:03.876 --> 00:19:05.638
I am now experimenting with not doing any

00:19:05.678 --> 00:19:06.138
consulting.

00:19:06.178 --> 00:19:10.241
I'm going to sit out all the AI churn, you know,

00:19:10.301 --> 00:19:12.063
you all figure that out.

00:19:12.163 --> 00:19:14.444
Then I will check back in next year, a couple

00:19:14.484 --> 00:19:17.247
of years, when maybe never, and see if there's

00:19:17.267 --> 00:19:18.287
anything else I can help with.

00:19:18.307 --> 00:19:19.969
In the meantime, I can just hack on the things

00:19:20.009 --> 00:19:20.829
that I want to hack on.

00:19:21.930 --> 00:19:22.311
[Linkarzu]: Okay.

00:19:22.531 --> 00:19:23.812
What are you going to do?

00:19:23.912 --> 00:19:24.313
YouTube?

00:19:24.673 --> 00:19:25.634
Emacs?

00:19:25.834 --> 00:19:27.256
What's the plan?

00:19:27.336 --> 00:19:29.438
[Sacha]: Have fun?

00:19:29.578 --> 00:19:31.320
We like biking.

00:19:31.340 --> 00:19:32.501
We like going outside.

00:19:32.841 --> 00:19:34.343
I like writing and drawing.

00:19:34.964 --> 00:19:37.887
I can always find things to tinker with in Emacs.

00:19:38.387 --> 00:19:40.630
Coming up with ideas for things to do is never

00:19:40.690 --> 00:19:41.450
really a problem.

00:19:41.871 --> 00:19:42.732
It's more like...

00:19:45.491 --> 00:19:47.813
Trying to finish enough of those things so I can

00:19:47.853 --> 00:19:49.694
post them and make them something that other

00:19:49.714 --> 00:19:52.275
people might be able to learn from or build on,

00:19:52.456 --> 00:19:52.756
right?

00:19:53.156 --> 00:19:55.137
[Linkarzu]: Yeah, yeah, okay.

00:19:57.218 --> 00:19:58.599
I had something for you.

00:19:58.659 --> 00:19:59.800
I had a question for you.

00:19:59.840 --> 00:20:01.161
I just...

00:20:01.801 --> 00:20:02.762
Hold on, let me think.

00:20:03.262 --> 00:20:03.862
Let me think.

00:20:05.403 --> 00:20:06.884
Oh, you were talking about something.

00:20:06.944 --> 00:20:09.566
Oh, but before we continue, Sacha, just...

NOTE Thanking YouTube members

00:20:10.377 --> 00:20:12.758
Let me thank my YouTube members.

00:20:12.979 --> 00:20:14.740
The CEOs are shown on the screen.

00:20:15.040 --> 00:20:16.900
@web2three, https://web2three.com,

00:20:16.901 --> 00:20:19.301
Ted, https://cpnllc.com,

00:20:19.302 --> 00:20:20.683
and also Gallo.

00:20:21.064 --> 00:20:22.364
These are the three CEOs.

00:20:22.524 --> 00:20:24.346
And I just want to thank the rest of the YouTube

00:20:24.366 --> 00:20:27.147
members, which are the ones that are shown here.

00:20:27.247 --> 00:20:31.050
So just appreciate each one of the members for

00:20:31.350 --> 00:20:32.150
supporting the channel.

00:20:32.370 --> 00:20:35.072
Okay, so back to this here.

00:20:35.312 --> 00:20:37.634
That's just my little announcement that I do

00:20:37.654 --> 00:20:39.775
there on every live stream.

00:20:41.925 --> 00:20:42.366
[Sacha]: All right.

00:20:43.087 --> 00:20:45.050
So, what do you want to go into?

00:20:45.290 --> 00:20:45.771
[Linkarzu]: Yeah.

00:20:45.991 --> 00:20:47.814
I want to take a look at what you were sharing a

00:20:47.854 --> 00:20:49.977
moment ago.

00:20:50.638 --> 00:20:52.600
The speech-to-text,

00:20:52.601 --> 00:20:54.824
and it happens in real time, right?

00:20:55.645 --> 00:20:58.858
[Sacha]: All right.

NOTE Backstory of real-time speech-to-text transcript

00:21:00.120 --> 00:21:03.341
Like many things in Emacs, this came out of a

00:21:03.441 --> 00:21:05.982
bunch of small seemingly unrelated hacks.

00:21:06.643 --> 00:21:10.365
One was I was having this conversation with a

00:21:10.405 --> 00:21:13.247
French tutor and I was like, man, I am having a

00:21:13.287 --> 00:21:15.408
hard time making sure... Like, he would switch into

00:21:15.508 --> 00:21:16.969
lecture mode and I was trying to have more

00:21:17.029 --> 00:21:17.708
conversation mode

00:21:17.709 --> 00:21:20.311
so I could practice some more, right?

00:21:20.371 --> 00:21:23.713
So I think I've got this right.

00:21:25.652 --> 00:21:27.694
Hang on a second... Stats...

00:21:28.155 --> 00:21:28.694
[Linkarzu]: You let me know

00:21:28.695 --> 00:21:31.798
when I switch to your screen.

00:21:32.378 --> 00:21:34.280
[Sacha]: Okay. Feel free to share my screen.

00:21:34.580 --> 00:21:37.143
[Linkarzu]: Okay. Let's see here. There we go.

00:21:38.012 --> 00:21:41.455
[Sacha]: Anyway, so I had a large language model

00:21:41.495 --> 00:21:44.778
generate a Python server because sometimes I'm

00:21:44.818 --> 00:21:47.701
like, I just want a proof of concept for this.

00:21:48.102 --> 00:21:50.484
I don't necessarily know all the details of how

00:21:50.524 --> 00:21:52.345
to work with the Silero voice activity

00:21:52.346 --> 00:21:52.946
detection thing.

00:21:52.986 --> 00:21:55.248
Anyway, so make me a server that can listen to my

00:21:55.348 --> 00:21:57.831
audio devices in real time without messing up my

00:22:00.273 --> 00:22:02.015
actual microphone use if I'm on stream.

00:22:02.435 --> 00:22:04.376
Okay, so I have this Python server, and then I

00:22:04.396 --> 00:22:05.897
wanted to visualize it within Emacs.

00:22:05.937 --> 00:22:07.738
Okay, I got that visualizing inside Emacs.

00:22:08.098 --> 00:22:11.720
And then I wanted to say, all right, you know,

00:22:12.020 --> 00:22:13.861
why don't I have speech recognition listening on

00:22:13.901 --> 00:22:18.824
this thing so that if I say something, it can

00:22:18.884 --> 00:22:19.905
check it off.

00:22:20.005 --> 00:22:21.686
Like playing Bingo, you know, if I say it, then

00:22:21.966 --> 00:22:23.727
it gives me a note that I've actually said that

00:22:23.767 --> 00:22:24.847
word or phrase.

00:22:24.987 --> 00:22:27.289
And so it could show me a list of the words or

00:22:27.329 --> 00:22:29.530
phrases that I still want to say in conversation.

00:22:30.090 --> 00:22:32.232
And then as we were preparing for this

00:22:32.272 --> 00:22:34.094
conversation, I was like, you know what would be

00:22:34.114 --> 00:22:37.457
really cool is if I could have that speech

00:22:37.497 --> 00:22:40.440
recognition, which is running anyway, give me a

00:22:40.500 --> 00:22:44.524
transcript of the current conversation in a way

00:22:44.604 --> 00:22:47.927
that I could then clip if I wanted to, because

00:22:48.007 --> 00:22:51.389
sometimes I'll be doing a live stream

00:22:51.390 --> 00:22:51.891
and I'd be like,

00:22:52.411 --> 00:22:54.291
You know, that was a really cool demo and I

00:22:54.311 --> 00:22:56.492
should grab that so that I can just grab the

00:22:56.512 --> 00:23:01.113
screenshot or put it into a blog post or just get

00:23:01.173 --> 00:23:04.714
a text or extract a clip out of it, turn it into

00:23:04.734 --> 00:23:05.474
a video, right?

00:23:07.134 --> 00:23:10.134
And so now I have this thing where,

00:23:10.135 --> 00:23:10.835
hang on a second.

00:23:11.295 --> 00:23:14.756
If I'm somewhere else, for example, it's easy for

00:23:14.796 --> 00:23:15.376
me to get to.

NOTE Demo: real-time transcript and instant replay in Emacs

00:23:15.496 --> 00:23:16.657
I have a voice command for it.

00:23:17.177 --> 00:23:19.839
Prepare to fast forward.

00:23:19.840 --> 00:23:21.728
Which is of course a [Spaceballs] reference.

00:23:21.828 --> 00:23:23.689
It'll show me then this thing.

00:23:24.609 --> 00:23:30.311
And if we are... Let me load this real quick.

00:23:31.231 --> 00:23:34.512
And it will show me the video that we have, or at

00:23:34.552 --> 00:23:36.353
least the recording that I've got of it.

00:23:37.073 --> 00:23:38.474
That's on the right side here.

00:23:38.494 --> 00:23:40.454
This MPV is controlled by Emacs.

00:23:41.194 --> 00:23:44.735
And if I go here.

00:23:45.335 --> 00:23:46.636
Let's say this one.

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-23-46-884.jpg
#+SCREENSHOT_TIME: 00:23:46.884

00:23:46.876 --> 00:23:48.337
So here's your waveform for it.

00:23:49.158 --> 00:23:50.979
If I play it back, which is of course the

00:23:51.039 --> 00:23:52.139
Spaceball reference,

00:23:52.140 --> 00:23:54.001
it will show me then this thing.

00:23:54.762 --> 00:23:58.444
I can copy the text if I wanted to, or I can

00:23:58.885 --> 00:24:02.027
extract this into its own video.

NOTE
Demo: Video editing witin Emacs
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-24-13-994.jpg
#+SCREENSHOT_TIME: 00:24:13.994

00:24:03.028 --> 00:24:05.410
Of course I do my editing within Emacs.

00:24:06.573 --> 00:24:08.432
This is what my video editing

00:24:08.433 --> 00:24:09.454
looks like within Emacs.

00:24:09.554 --> 00:24:12.634
I can just copy and paste the subtitle cues

00:24:12.635 --> 00:24:13.475
that I want.

00:24:13.995 --> 00:24:16.115
I tell it where I want the output to be.

00:24:16.175 --> 00:24:18.276
I tell it what audio that I want to use in case

00:24:18.316 --> 00:24:19.036
I've replaced it.

00:24:19.856 --> 00:24:22.057
Here, for example, I'm using the same audio as

00:24:22.117 --> 00:24:25.758
well as the video from a previous live stream

00:24:25.918 --> 00:24:26.718
recorded session.

00:24:27.538 --> 00:24:30.820
and then I can just reorder things, clip things,

00:24:30.920 --> 00:24:32.581
change the timestamps here.

00:24:33.122 --> 00:24:36.424
If I want to cut from

00:24:36.464 --> 00:24:40.226
there onwards, sample bits of it and so on,

00:24:41.707 --> 00:24:43.408
it's something I can do.

00:24:45.230 --> 00:24:47.331
[Linkarzu]: Can you remove words as well or just

00:24:47.691 --> 00:24:48.652
entire sentences?

00:24:50.108 --> 00:24:53.050
[Sacha]: One way to do that is to split at

00:24:53.110 --> 00:24:53.611
that point.

00:24:53.711 --> 00:24:56.012
So for example, if I want to remove definitely,

00:24:57.353 --> 00:24:59.574
let's load this one so we can see where I am.

00:25:00.135 --> 00:25:01.335
I can follow along here.

00:25:01.355 --> 00:25:03.597
So this is my livestream from yesterday.

00:25:04.420 --> 00:25:09.560
"My bottleneck is definitely thinking speed."

00:25:10.321 --> 00:25:11.722
So here's definitely, right?

00:25:11.742 --> 00:25:14.523
This is the start of "definitely thinking speed".

00:25:15.884 --> 00:25:16.985
If I split here,

00:25:18.692 --> 00:25:25.176
and I split at the end of "thinking speed", I

00:25:25.196 --> 00:25:27.577
can say let's skip this.

00:25:29.939 --> 00:25:35.042
And I think, assuming I haven't broken...

00:25:35.082 --> 00:25:36.823
"My bottleneck is thinking speed."

00:25:37.798 --> 00:25:41.181
[Linkarzu]: Okay. Yeah.

00:25:41.261 --> 00:25:42.522
Just a little tail there, but I get it.

00:25:42.583 --> 00:25:43.003
[Sacha]: Yeah.

00:25:43.423 --> 00:25:44.925
It's just a matter of

00:25:46.186 --> 00:25:47.707
choosing the right timestamp.

00:25:48.348 --> 00:25:49.289
"Thinking speed."

00:25:49.729 --> 00:25:52.531
[Linkarzu]: So that is pretty interesting

00:25:52.532 --> 00:25:53.513
and based.

00:25:53.713 --> 00:25:57.155
So you do all of your videos in Emacs,

00:25:57.156 --> 00:25:58.017
edit all of them there.

00:25:58.157 --> 00:25:59.018
[Sacha]: Yeah, pretty much.

00:25:59.158 --> 00:26:04.721
Well, it started because in 2020, I think,

00:26:04.722 --> 00:26:07.864
I wanted to make a presentation for EmacsConf.

00:26:08.585 --> 00:26:11.327
And I wanted to record my audio and then just add

00:26:11.367 --> 00:26:12.408
the visuals on top of it.

00:26:12.908 --> 00:26:14.910
But I don't like clicking the mouse because I'm

00:26:14.970 --> 00:26:16.170
on a Lenovo ThinkPad.

00:26:16.171 --> 00:26:17.592
The tiny little pointer is handy, but...

00:26:18.780 --> 00:26:20.814
if I use a separate mouse, it's annoying.

00:26:20.834 --> 00:26:22.496
Anyway. Clicking is annoying, especially since

00:26:22.876 --> 00:26:24.597
I'm so used to being able to automate everything

00:26:24.617 --> 00:26:25.518
with keyboard shortcuts.

00:26:26.019 --> 00:26:27.923
So I said, why don't I use Emacs for

00:26:28.124 --> 00:26:30.650
video editing and audio editing?

00:26:30.730 --> 00:26:31.853
So what I can do then

00:26:32.743 --> 00:26:37.024
is I can take my audio recording... Or actually,

00:26:37.025 --> 00:26:39.586
I can record from Emacs itself

00:26:39.587 --> 00:26:41.827
and then I can edit it

00:26:41.828 --> 00:26:44.208
to remove the oopses and the false starts

00:26:44.209 --> 00:26:46.210
and change all the things that I want to.

00:26:46.891 --> 00:26:49.111
Then I can add the images or videos

00:26:49.112 --> 00:26:51.112
that I want for each clip

00:26:51.113 --> 00:26:52.633
and it will automatically speed up

00:26:52.634 --> 00:26:56.536
or slow down the video to fit the

00:26:56.596 --> 00:26:57.717
duration of the audio.

00:26:58.737 --> 00:27:00.639
So if I'm saying, you know, this is a quick

00:27:00.659 --> 00:27:02.300
preview of the conference schedule, et cetera,

00:27:02.340 --> 00:27:06.183
then it speeds up the scrolling

00:27:06.223 --> 00:27:08.024
automatically so I don't have to worry about

00:27:08.125 --> 00:27:09.846
doing it fast enough if I want to.

00:27:10.066 --> 00:27:11.887
I can also tell it to play this original speed.

00:27:12.588 --> 00:27:16.631
That has just grown since then.

00:27:17.111 --> 00:27:18.431
Every time I want to do something else...

00:27:18.432 --> 00:27:19.572
Like now I'm thinking,

00:27:19.573 --> 00:27:20.514
you know what would be really cool

00:27:20.554 --> 00:27:23.857
is if I could add a title card very easily, right?

00:27:23.917 --> 00:27:26.719
So let me go to, let me start a new thing here.

00:27:30.257 --> 00:27:31.278
WebVTT.

00:27:31.898 --> 00:27:33.739
So if I want to say, I want to add a title

00:27:33.779 --> 00:27:37.001
card that says "Hello world", right?

00:27:37.941 --> 00:27:39.322
Oh, I need to actually save it.

00:27:40.202 --> 00:27:43.704
Let's save it as, hang on a sec.

00:27:44.505 --> 00:27:45.345
Breathe, Sacha.

00:27:45.405 --> 00:27:46.005
It's okay.

00:27:46.105 --> 00:27:47.086
test.vtt.

00:27:47.166 --> 00:27:47.766
Yeah, that one.

00:27:47.946 --> 00:27:48.246
Okay.

00:27:49.327 --> 00:27:49.727
All right.

00:27:50.067 --> 00:27:50.928
So now I have a test.

NOTE
Demo: generating video title cards from WebVTT in Emacs
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-27-53-964.jpg
#+SCREENSHOT_TIME: 00:27:53.964

00:27:51.988 --> 00:27:54.590
If I say Hello World, then it just calls

00:27:54.790 --> 00:27:56.911
ImageMagick to create this file here.

00:27:57.711 --> 00:27:59.012
If I open that file,

00:28:01.185 --> 00:28:02.185
it's super simple.

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-28-03-807.jpg
#+SCREENSHOT_TIME: 00:28:03.807

00:28:02.285 --> 00:28:04.646
It's just white text and a black background using

00:28:04.666 --> 00:28:07.067
my custom font, because I went to the trouble of

00:28:07.527 --> 00:28:10.407
figuring out how to make a font with my

00:28:10.467 --> 00:28:12.588
handwriting and then kern it using Org Mode.

00:28:12.628 --> 00:28:13.408
Because why not?

00:28:14.828 --> 00:28:18.189
[Linkarzu]: Okay.

00:28:18.609 --> 00:28:19.990
[Sacha]: That's ready.

00:28:20.030 --> 00:28:20.610
Then I can pop that in and I can say, you

00:28:20.630 --> 00:28:22.871
know, this is a test here.

00:28:23.371 --> 00:28:25.191
Let's do a `subed-record` here.

00:28:27.352 --> 00:28:28.472
"This is a test here."

00:28:29.950 --> 00:28:33.551
And then that audio here,

00:28:33.552 --> 00:28:35.994
it becomes a whole thing.

00:28:36.714 --> 00:28:38.514
If I compile this,

00:28:38.515 --> 00:28:41.557
I think it will just make a thing.

00:28:41.677 --> 00:28:43.037
Let's put it into

00:28:43.038 --> 00:28:45.699
`#+OUTPUT: test.webm`, sure.

00:28:48.801 --> 00:28:49.982
All right.

00:28:50.202 --> 00:28:51.583
mpv test.webm

00:28:53.084 --> 00:28:54.204
"This is a test here."

00:28:55.145 --> 00:29:00.442
[Linkarzu]: I see. Pretty cool.

00:29:00.962 --> 00:29:04.265
Have you seen...

NOTE fframes, generative AI

00:29:06.012 --> 00:29:08.232
[Sacha]: If I can figure out

00:29:08.233 --> 00:29:10.072
how to get fframes,

00:29:10.073 --> 00:29:11.353
that thing that you're using...

00:29:13.254 --> 00:29:15.573
If I can figure out how to get that working,

00:29:15.574 --> 00:29:16.715
that might be interesting too.

00:29:17.175 --> 00:29:18.814
Although, I have to say,

00:29:18.815 --> 00:29:21.815
I'm very attached to my stick figures

00:29:21.816 --> 00:29:23.176
and the way that I like to draw things.

00:29:23.696 --> 00:29:26.757
And I have tried using generative models to say,

00:29:26.777 --> 00:29:27.677
"Okay, here's my sketch.

00:29:28.017 --> 00:29:30.498
Can you animate this SVG, move

00:29:30.518 --> 00:29:31.318
things around or whatever."

00:29:31.518 --> 00:29:33.158
It keeps trying to rewrite things to plain text.

00:29:33.178 --> 00:29:34.839
I'm like, no, I want my actual paths.

00:29:35.339 --> 00:29:36.779
So I have to fiddle with it some more.

00:29:37.259 --> 00:29:39.199
In the meantime, however,

00:29:39.200 --> 00:29:40.820
I can animate things myself,

00:29:40.920 --> 00:29:41.740
thank you very much.

00:29:42.601 --> 00:29:47.442
Like, for example, this... animate...

00:29:47.462 --> 00:29:48.962
let's go with that one.

NOTE Demo: Stepping through SVGs in Emacs

00:29:49.522 --> 00:29:50.983
"Some things that work really well."

00:29:51.563 --> 00:29:53.063
This is within Emacs again.

00:29:53.483 --> 00:29:55.784
I can just highlight the different things.

NOTE
I draw on an iPad with Noteful
#+SCREENSHOT: Sw6sCMIypmk - Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years-00-30-21-862.jpg
#+SCREENSHOT_TIME: 00:30:21.862

00:29:56.204 --> 00:29:57.463
[Linkarzu]: How do you do your drawings,

00:29:57.464 --> 00:29:57.924
by the way?

00:29:58.084 --> 00:30:00.025
Like, do you have like a tablet or something?

00:30:00.937 --> 00:30:01.497
[Sacha]: Oh yeah, yeah.

00:30:01.617 --> 00:30:04.578
I use Noteful on an iPad.

00:30:05.058 --> 00:30:09.839
I used to draw using Krita on a Lenovo X230

00:30:09.879 --> 00:30:13.120
tablet PC, but at the moment I can just use the

00:30:13.180 --> 00:30:14.540
iPad with Noteful.

00:30:14.580 --> 00:30:16.941
Currently I'm drawing in dark mode because you

00:30:16.981 --> 00:30:18.240
have a dark mode channel,

00:30:18.241 --> 00:30:20.960
so I have things like my sketches.

NOTE Light themes and dark themes

00:30:20.900 --> 00:30:23.281
[Linkarzu]: Emacs users like to

00:30:23.282 --> 00:30:24.603
flashbang people, right?

00:30:24.623 --> 00:30:26.004
They like the white?

00:30:26.345 --> 00:30:30.007
Is it to tell apart from the Neovim

00:30:30.047 --> 00:30:30.468
community?

00:30:30.608 --> 00:30:32.950
What's up with the white themes?

00:30:33.970 --> 00:30:36.032
[Sacha]: I mean, I tend to use dark mode now most

00:30:36.052 --> 00:30:38.534
of the time too, because I figure most people

00:30:38.574 --> 00:30:42.157
will be watching my stream when late at night

00:30:42.177 --> 00:30:43.538
they're just relaxing or whatever.

00:30:45.159 --> 00:30:47.440
But I guess different people work

00:30:47.441 --> 00:30:48.401
with different setups.

00:30:48.962 --> 00:30:52.224
I do like the way that with modus-themes and

00:30:52.284 --> 00:30:54.706
all the other themes in Emacs, it's super easy to

00:30:54.726 --> 00:30:56.848
pick one of these dark

00:30:56.888 --> 00:30:57.768
themes and just go with it.

00:30:58.329 --> 00:30:58.569
[Linkarzu]: Okay.

NOTE Art and stick figures

00:30:58.789 --> 00:31:00.210
So you do it on the iPad then.

00:31:00.250 --> 00:31:02.812
I have to convince my wife that we need an iPad

00:31:02.892 --> 00:31:03.613
for the family.

00:31:05.325 --> 00:31:07.750
I don't know how to draw.

00:31:07.990 --> 00:31:08.571
I'm pretty bad.

00:31:08.651 --> 00:31:10.174
[Sacha]: I don't really know how to draw either,

00:31:10.274 --> 00:31:12.318
but somehow people have paid me to do so.

00:31:12.438 --> 00:31:13.420
I don't know what's going on there.

00:31:14.221 --> 00:31:16.726
But yeah, I'm really only drawing stick figures.

00:31:16.826 --> 00:31:17.206
It's fine.

00:31:17.734 --> 00:31:18.155
[Linkarzu]: Okay.

00:31:18.375 --> 00:31:20.797
Yeah, no, my drawing is like, you have no idea.

00:31:21.618 --> 00:31:23.960
I lack creativity when it comes to that.

00:31:24.220 --> 00:31:26.241
My wife paints.

00:31:26.242 --> 00:31:28.344
She paints pretty good stuff.

00:31:28.624 --> 00:31:30.005
My daughter paints.

00:31:30.366 --> 00:31:32.448
Well, these are my daughter's paintings, the ones

00:31:32.468 --> 00:31:33.389
that are back here.

00:31:34.710 --> 00:31:35.871
I guess you cannot see them.

00:31:37.292 --> 00:31:38.334
You can see them there in the

00:31:38.354 --> 00:31:38.734
background.

00:31:38.935 --> 00:31:42.440
She's learning, you know, but me... Nice!

00:31:42.520 --> 00:31:43.742
[Sacha]: I see very vivid colors.

00:31:44.002 --> 00:31:47.547
[Linkarzu]: Yeah, she loves rainbows and a lot of

00:31:47.587 --> 00:31:49.190
vivid colors, but I can't.

00:31:49.550 --> 00:31:50.431
I'm pretty bad at it.

00:31:50.732 --> 00:31:53.376
Now, how do you do this

00:31:55.069 --> 00:31:56.589
speech-recognition thing

00:31:56.590 --> 00:31:57.872
because I do something similar.

NOTE Linkarzu's video editing workflow

00:31:58.772 --> 00:32:01.155
Let me tell you a bit about what I do with my

00:32:01.375 --> 00:32:02.356
video workflow.

00:32:02.616 --> 00:32:04.778
I got tired of editing videos.

00:32:04.858 --> 00:32:05.318
I'm done.

00:32:05.599 --> 00:32:08.822
Like, it is a time consuming process coming up

00:32:08.862 --> 00:32:09.402
with clips.

00:32:09.682 --> 00:32:10.863
You've been there, right?

00:32:10.883 --> 00:32:13.886
You have been doing that for quite a long time,

00:32:14.026 --> 00:32:15.227
way longer than me, right?

00:32:16.028 --> 00:32:18.571
I just got tired and I was like, I don't want to

00:32:18.591 --> 00:32:19.212
do this anymore.

00:32:20.153 --> 00:32:22.375
Never, ever, ever again.

00:32:22.816 --> 00:32:25.278
I need to come up with a method that allows me to

00:32:25.659 --> 00:32:27.901
create clips out of a live stream.

00:32:28.362 --> 00:32:29.583
All of it, AI.

00:32:30.144 --> 00:32:31.885
AI did all of it for me.

00:32:32.026 --> 00:32:33.047
It hasn't been easy.

00:32:33.207 --> 00:32:34.568
It's been months.

00:32:34.749 --> 00:32:36.691
I've been stuck for months.

00:32:37.291 --> 00:32:39.912
But I don't do stuff real time the way that

00:32:39.952 --> 00:32:40.752
you're doing right now.

00:32:41.033 --> 00:32:43.453
The transcription happens when we're done with

00:32:43.473 --> 00:32:46.955
the call and the process starts automatically and

00:32:47.295 --> 00:32:49.416
a few hours after I have the clips in my

00:32:49.456 --> 00:32:52.237
dashboard that I can upload if I want, right?

00:32:52.277 --> 00:32:53.938
But it's not real time.

00:32:54.198 --> 00:32:57.719
I saw how you did it on

00:32:57.759 --> 00:32:59.400
your side and it's pretty accurate.

00:32:59.740 --> 00:33:01.400
Like, what's the magic?

00:33:01.781 --> 00:33:02.781
What are you doing there?

00:33:03.161 --> 00:33:05.302
You're sending it somewhere, right?

NOTE Local CPU-only speech recognition in Emacs

00:33:05.842 --> 00:33:08.023
[Sacha]: No, no, this is an entirely local model

00:33:08.203 --> 00:33:10.343
and I'm running it in a computer

00:33:10.344 --> 00:33:11.725
with hardly any GPU.

00:33:11.785 --> 00:33:14.346
So I'm actually just making it use CPU only for

00:33:14.386 --> 00:33:18.048
the speech recognition because I have a Lenovo

00:33:18.108 --> 00:33:22.130
P52 from 2018, I think.

00:33:22.170 --> 00:33:24.932
So it doesn't do this GPU thing very well.

00:33:25.592 --> 00:33:27.553
I think you're usually on a Mac, so you're

00:33:27.593 --> 00:33:28.674
spoiled for choices there.

00:33:29.114 --> 00:33:31.576
But speech recognition has gotten really good

00:33:31.696 --> 00:33:32.897
over the last few years.

00:33:33.377 --> 00:33:35.278
And I'm using Orukeet at the moment.

00:33:35.338 --> 00:33:37.439
It's a multilingual model, so it can handle my

00:33:37.799 --> 00:33:41.261
poor French pronunciations just as fine as my

00:33:41.302 --> 00:33:41.802
English ones.

00:33:42.602 --> 00:33:44.563
I can press my keyboard shortcut.

00:33:44.663 --> 00:33:47.685
For example, I can say, "This is a test during

00:33:47.725 --> 00:33:48.746
a chat with Linkarzu."

00:33:50.410 --> 00:33:53.893
Then, because I've modified my dictionary,

00:33:54.713 --> 00:33:58.737
your channel name actually shows up properly.

00:33:59.557 --> 00:34:03.000
"We are talking about speech-to-text, dictation,

00:34:03.040 --> 00:34:04.241
all sorts of other things like that."

00:34:05.182 --> 00:34:05.842
Where's my phone?

00:34:10.126 --> 00:34:11.206
It's pretty accurate.

00:34:11.607 --> 00:34:12.947
[Linkarzu]: It's extremely accurate.

00:34:13.368 --> 00:34:14.309
What's the name you said?

00:34:14.329 --> 00:34:17.792
Because I use Wispr Flow, a local model as well.

00:34:18.092 --> 00:34:19.913
I do the transcript locally on my Mac.

00:34:20.194 --> 00:34:22.514
Wispr Flow is what the AI decided to use.

00:34:22.576 --> 00:34:26.418
And I'm like, oh, it gets it. But not...

00:34:27.369 --> 00:34:27.768
[Sacha]: Yeah.

00:34:27.829 --> 00:34:30.610
The model I'm currently using is called Orukeet.

00:34:31.112 --> 00:34:35.494
I think it's based on Parakeet, but it's been

00:34:35.534 --> 00:34:38.837
tweaked for more performance and less memory.

00:34:39.237 --> 00:34:41.378
But there are so many new models coming out.

00:34:41.438 --> 00:34:43.699
It's really quite interesting because every day

00:34:43.760 --> 00:34:45.581
or every other day, there's like, oh, try this

00:34:45.661 --> 00:34:46.322
new model.

00:34:47.161 --> 00:34:50.405
I'm not good enough to keep on top of all those

00:34:50.445 --> 00:34:52.927
changes. If I can manage to get the AI to generate

00:34:52.967 --> 00:34:55.909
me a server that has an OpenAI interface, I

00:34:55.949 --> 00:34:58.732
can plop it right into my Emacs setup and it will

00:34:58.812 --> 00:34:59.372
just work.

00:34:59.633 --> 00:35:00.713
So I'm happy with that.

00:35:01.454 --> 00:35:03.655
This is fast enough that

00:35:03.656 --> 00:35:04.857
I can use it to think.

00:35:05.317 --> 00:35:08.120
Then, when I have the text, I can rearrange it

00:35:08.200 --> 00:35:09.100
however I'd like.

00:35:09.501 --> 00:35:11.843
For example, "prepare to fast forward."

00:35:14.083 --> 00:35:14.683
We're here.

NOTE Sharing speech commands

00:35:15.143 --> 00:35:17.664
[Linkarzu]: I have a similar command.

00:35:18.445 --> 00:35:19.345
Let me see if it works.

00:35:19.365 --> 00:35:19.745
Hold on.

00:35:20.366 --> 00:35:24.987
You see my terminal right now, right?

00:35:25.067 --> 00:35:25.308
Yes.

00:35:25.408 --> 00:35:26.548
I don't know if you can see my screen.

00:35:26.768 --> 00:35:27.568
Let me see if it works.

00:35:27.588 --> 00:35:27.909
Hold on.

00:35:29.529 --> 00:35:31.990
Virgin mode off.

00:35:32.891 --> 00:35:33.511
[Sacha]: Yeah, yeah, yeah.

00:35:33.971 --> 00:35:34.411
I saw that.

00:35:34.491 --> 00:35:37.533
[Linkarzu]: It didn't work.

00:35:37.953 --> 00:35:40.634
It changes my wallpaper and it changes my...

00:35:42.084 --> 00:35:43.005
[Sacha]: I have one too.

00:35:43.425 --> 00:35:43.785
Laser.

00:35:44.326 --> 00:35:46.687
Look. I changed my cursor to a laser

00:35:46.688 --> 00:35:47.968
so I can say,

00:35:47.969 --> 00:35:49.310
here's my mouse cursor, right?

00:35:49.670 --> 00:35:54.674
[Linkarzu]: Okay, pretty cool.

00:35:54.714 --> 00:35:56.075
[Sacha]: Yeah.

00:35:56.115 --> 00:35:56.114
So the nice thing about it...

00:35:56.115 --> 00:35:56.916
Oh, it's still listening.

00:35:59.938 --> 00:36:02.600
Let me just turn off laser mode here.

00:36:03.581 --> 00:36:05.442
Laser. Laser. Laser.

00:36:06.543 --> 00:36:07.564
[Linkarzu]: It happens to me as well.

00:36:07.644 --> 00:36:08.805
[Sacha]: Edit retry.

00:36:10.785 --> 00:36:11.285
Laser.

00:36:12.306 --> 00:36:13.266
Okay, there you go.

NOTE Speech commands and more shortcuts

00:36:14.227 --> 00:36:16.868
The nice thing about speech commands is that

00:36:17.108 --> 00:36:20.330
it opens up a whole lot of other ways to run

00:36:20.370 --> 00:36:22.571
commands without necessarily having to memorize

00:36:22.611 --> 00:36:23.532
keyboard shortcuts.

NOTE Having fun with speech commands

00:36:23.952 --> 00:36:25.593
You can have more fun with it too.

00:36:25.993 --> 00:36:27.914
So for example, now I have this command.

00:36:29.535 --> 00:36:31.756
It turns out I cannot say "start streaming"

00:36:31.836 --> 00:36:32.376
reliably.

00:36:32.416 --> 00:36:33.996
Sometimes I say "start screaming."

00:36:34.856 --> 00:36:37.656
I know sometimes I accidentally say that,

00:36:37.657 --> 00:36:38.597
and sometimes that's what

00:36:38.677 --> 00:36:40.078
the speech recognition hears.

00:36:40.478 --> 00:36:42.878
So instead my command for starting to stream

00:36:43.398 --> 00:36:46.039
(because of course Emacs controls my OBS through

00:36:46.079 --> 00:36:48.339
websockets) is "let's go live".

00:36:48.860 --> 00:36:51.759
My command for stopping the stream

00:36:51.760 --> 00:36:52.740
is "over and out",

00:36:53.401 --> 00:36:55.201
just because it's a little more fun to say.

00:36:55.281 --> 00:36:57.582
It becomes easier for me to remember what I need

00:36:57.602 --> 00:36:58.942
to say in order to make this happen.

00:37:00.083 --> 00:37:00.943
[Linkarzu]: Yeah, yeah.

NOTE Dictionaries for correcting speech recognition

00:37:01.403 --> 00:37:03.365
Now, why is it accurate?

00:37:03.545 --> 00:37:06.587
And how do you do, you have a dictionary of

00:37:06.667 --> 00:37:09.849
the difficult words?

00:37:09.889 --> 00:37:12.270
Like if I say Neovim, it doesn't get it.

00:37:12.430 --> 00:37:16.233
It says Neovim, or it just puts whatever it

00:37:16.373 --> 00:37:17.573
wants, whenever it wants.

00:37:17.633 --> 00:37:19.735
Sometimes it puts something random out there.

00:37:20.255 --> 00:37:23.057
What do you do for yours?

00:37:23.157 --> 00:37:24.778
[Sacha]: Neovim is okay, I guess.

00:37:25.742 --> 00:37:26.862
Let's see if it does a thing.

00:37:27.102 --> 00:37:29.643
Yeah, it got that without my needing to correct

00:37:29.683 --> 00:37:29.923
things.

00:37:29.983 --> 00:37:32.444
Let's make a harder word.

00:37:33.705 --> 00:37:35.305
Anti-disestablishmentarianism.

00:37:36.266 --> 00:37:36.826
Close enough.

00:37:37.066 --> 00:37:39.607
Okay, you know, that requires very little editing.

00:37:39.647 --> 00:37:41.407
What is a difficult word?

00:37:42.468 --> 00:37:44.568
Oh, actually, let's make a different name.

00:37:45.289 --> 00:37:46.769
Sometimes it gets Prot's name wrong.

00:37:47.349 --> 00:37:49.070
Prot does a lot of videos on Emacs.

00:37:49.691 --> 00:37:50.772
Oh no, it got him too.

00:37:51.292 --> 00:37:54.853
[Linkarzu]: Yeah, yeah, yeah.

00:37:55.094 --> 00:37:57.215
[Sacha]: If there was a thing that is difficult

00:37:57.235 --> 00:37:58.895
to say...

00:38:01.116 --> 00:38:03.698
heisenbug is making org.nvim.

00:38:04.718 --> 00:38:05.018
That one.

00:38:05.118 --> 00:38:05.839
Okay, here we go.

00:38:06.459 --> 00:38:08.020
heisenbug is making org.nvim.

00:38:10.168 --> 00:38:11.850
I mean, it's getting him, so...

00:38:12.010 --> 00:38:13.311
[Linkarzu]: Okay, yeah, yeah, yeah.

00:38:14.872 --> 00:38:15.332
I get it.

00:38:15.873 --> 00:38:17.854
So, it's a local model.

00:38:18.155 --> 00:38:18.635
Interesting.

NOTE Demo: Adding a misrecognized term to my common edits dictionary

00:38:19.115 --> 00:38:20.436
[Linkarzu]: Do you feed it a dictionary at some point?

00:38:20.496 --> 00:38:21.137
[Sacha]: It is a local model.

00:38:21.237 --> 00:38:22.398
If I do need to change things...

00:38:22.698 --> 00:38:24.460
Let's say

00:38:24.480 --> 00:38:25.941
for example, okay, "Orgzly Revived".

00:38:25.961 --> 00:38:26.962
It probably can't get that one.

00:38:27.522 --> 00:38:30.785
"I use Orgzly Revived on my phone to check my tasks."

00:38:31.736 --> 00:38:32.637
Oh yeah, so here, right?

00:38:32.697 --> 00:38:33.898
It says "Orgsley Revived."

00:38:33.978 --> 00:38:34.918
What is that even?

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-38-41-277.jpg
#+SCREENSHOT_TIME: 00:38:41.277
#+SCREENSHOT_CROP: 0 790 1263 1080

00:38:35.399 --> 00:38:38.361
But I can press `C-;` and it uses

00:38:38.621 --> 00:38:42.864
substitute. "Orgzly Revived" here.

00:38:43.385 --> 00:38:45.686
What that does, in addition to the

00:38:45.726 --> 00:38:48.428
substitutions that happen throughout the buffer,

00:38:48.448 --> 00:38:50.570
so for example, if I'm adding a transcript, it

00:38:50.590 --> 00:38:53.992
will change that all throughout the transcript.

00:38:54.272 --> 00:38:56.714
I've also added some code (because this is Emacs,

00:38:56.754 --> 00:38:57.595
I can just do that)

00:38:57.935 --> 00:39:01.297
that saves this in common errors or commonly

00:39:01.337 --> 00:39:02.338
misrecognized words.

00:39:02.758 --> 00:39:05.680
And then when I recognize text, whether it's

00:39:05.700 --> 00:39:08.501
before a voice command or if I'm just doing this

00:39:08.561 --> 00:39:10.462
or whatever, it will apply

00:39:10.463 --> 00:39:14.045
all of those common fixes, common edits.

00:39:14.465 --> 00:39:15.005
Here we go.

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-39-19-107.jpg
#+SCREENSHOT_TIME: 00:39:19.107

00:39:15.045 --> 00:39:19.048
So it automatically adds it to this thing here

00:39:19.108 --> 00:39:22.089
which gets saved automatically for me.

00:39:22.610 --> 00:39:26.152
And that's the change that I've just added.

00:39:26.994 --> 00:39:30.017
[Linkarzu]: Interesting. Pretty cool.

00:39:30.117 --> 00:39:31.879
[Sacha]: It's really nice to have that kind of

00:39:31.939 --> 00:39:36.923
[dictionary] shortcut built into the way that I edit

00:39:36.963 --> 00:39:37.304
things.

00:39:37.444 --> 00:39:40.366
All I know is I just hit `C-;` and

00:39:40.747 --> 00:39:42.048
put in what it's supposed to be.

00:39:42.588 --> 00:39:45.531
Then it gets not only fixed in my current

00:39:45.571 --> 00:39:47.333
file, but in the future as well.

00:39:47.953 --> 00:39:50.873
[Linkarzu]: Yeah, I need to work on

00:39:50.874 --> 00:39:52.474
my transcript game.

00:39:53.214 --> 00:39:53.634
Local models?

00:39:54.075 --> 00:39:56.035
[Sacha]: Oh, yeah, it's so cool.

NOTE Turning video transcripts into searchable blog posts

00:39:57.355 --> 00:39:59.416
One of the reasons why I love transcripts is that

00:40:00.216 --> 00:40:01.576
it's so much easier to search, right?

00:40:02.056 --> 00:40:06.696
Whenever I do an interview or whatever,

00:40:06.697 --> 00:40:07.898
the fun part for me is

00:40:07.958 --> 00:40:10.538
actually going over the transcript and turning it

00:40:10.618 --> 00:40:13.119
into something that I can use.

00:40:13.719 --> 00:40:19.161
Let me show you proj/yay-emacs/index.org.

00:40:19.742 --> 00:40:23.825
So these are, for example, my recent chats.

00:40:24.526 --> 00:40:28.149
In order to include the transcript in my blog

00:40:28.189 --> 00:40:30.591
post about this, all I need to say is captions,

00:40:31.152 --> 00:40:32.953
and I give it the link to the transcript.

00:40:33.414 --> 00:40:34.935
And that turns into...

00:40:35.235 --> 00:40:36.036
Hang on a second.

00:40:36.116 --> 00:40:36.657
Let me...

00:40:38.939 --> 00:40:40.520
I should have a `C-. b` here.

00:40:42.121 --> 00:40:42.722
Was it this one?

00:40:45.305 --> 00:40:46.845
Okay, so that turns into

00:40:46.846 --> 00:40:50.810
this kind of blog post. Right?

00:40:51.771 --> 00:40:53.712
You have the embedded video.

00:40:54.033 --> 00:40:55.114
You have the chapters.

00:40:55.414 --> 00:40:58.557
Clicking on the chapter link will advance to that.

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-41-02-126.jpg
#+SCREENSHOT_TIME: 00:41:02.126

00:40:58.597 --> 00:41:00.298
And then you have the whole transcript right here.

00:41:02.109 --> 00:41:03.290
with screenshots.

00:41:04.591 --> 00:41:11.377
So then people who don't want to listen through

00:41:11.437 --> 00:41:14.360
an entire hour-long video can just jump to the

00:41:14.400 --> 00:41:17.082
interesting parts themselves.

00:41:17.102 --> 00:41:20.425
I think these ones also go back to the video

00:41:20.485 --> 00:41:22.066
up there, which someday I'm going to figure out

00:41:22.106 --> 00:41:23.627
how to make a nice sticky display for.

00:41:24.608 --> 00:41:27.731
Clearly I need to fix that because it's not

00:41:27.811 --> 00:41:29.392
actually on that thing over there.

00:41:30.553 --> 00:41:33.837
Theoretically, if I'm publishing it right, this

00:41:33.857 --> 00:41:36.440
time I think I've been trying to host the videos

00:41:36.580 --> 00:41:38.582
on the Internet Archive so people you have to

00:41:38.642 --> 00:41:40.604
watch on YouTube if they don't want to.

00:41:41.225 --> 00:41:44.949
But yes, so the idea there is the video gives you

00:41:44.989 --> 00:41:46.811
so much text that you can then share.

00:41:47.411 --> 00:41:52.055
[Linkarzu]: Yeah.  Or edit a video way faster.

00:41:52.675 --> 00:41:55.498
Before I came up with this automated thing for

00:41:55.538 --> 00:41:57.759
creating my clips, I used to do that in DaVinci,

00:41:57.880 --> 00:41:59.981
you know, because DaVinci has like a transcript

00:42:00.121 --> 00:42:02.122
feature and you can...

00:42:02.123 --> 00:42:06.787
but I'd just rather not touch it at all.

NOTE Demo: Saving and cropping screenshots from a video at a timestamp

00:42:07.287 --> 00:42:10.650
[Sacha]: Screenshots are super easy for me to do because

00:42:10.790 --> 00:42:11.550
Emacs, of course.

00:42:11.951 --> 00:42:13.912
So like, for example, if I wanted here,

00:42:15.654 --> 00:42:17.456
If I wanted to take a different screenshot here,

00:42:17.536 --> 00:42:19.617
I can say save screenshot.

00:42:20.318 --> 00:42:22.259
And then it takes the screenshot

00:42:22.260 --> 00:42:23.101
and it does that thing.

00:42:23.181 --> 00:42:28.305
If I wanted to crop it, I can say crop to

00:42:28.345 --> 00:42:30.828
this and crop to that.

00:42:31.828 --> 00:42:32.549
[Linkarzu]: Oh, okay.

00:42:35.053 --> 00:42:36.632
[Sacha]: Actually I can say,

00:42:36.633 --> 00:42:39.913
just crop the screenshot.

00:42:39.914 --> 00:42:41.394
If I say screenshot crop,

00:42:41.395 --> 00:42:42.455
it will crop the screenshot.

00:42:42.855 --> 00:42:43.774
If I just say crop,

00:42:43.775 --> 00:42:46.596
it will crop the whole video to that section.

00:42:47.796 --> 00:42:49.977
[Linkarzu]: Oh, I see. I see what you're saying.

00:42:50.017 --> 00:42:52.577
That specific segment only, right?

00:42:52.617 --> 00:42:55.777
[Sacha]: Yeah. So text as a medium for video editing,

00:42:55.778 --> 00:42:57.039
it's actually really powerful.

00:42:58.319 --> 00:42:59.279
[Linkarzu]: Yeah, exactly.

00:42:59.619 --> 00:43:00.119
Yep, 100% agree.

00:43:03.262 --> 00:43:05.524
What other tricks do you want to show us there?

00:43:05.704 --> 00:43:10.228
What other things do you want to brag about your

00:43:10.348 --> 00:43:12.891
Emacs workflow?

00:43:13.291 --> 00:43:14.052
[Sacha]: It's really hard to say.

00:43:16.758 --> 00:43:19.519
I told you how doctor was the beginning of my of

00:43:19.559 --> 00:43:20.659
my experience.

00:43:21.579 --> 00:43:22.240
Yes, yes.

NOTE
Demo: M-x doctor with speech in and out
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-43-59-345.jpg
#+SCREENSHOT_TIME: 00:43:59.345

00:43:22.260 --> 00:43:23.080
So this is a doctor.

00:43:23.120 --> 00:43:27.221
You can say things like, I'm feeling happy today,

00:43:27.421 --> 00:43:28.402
as I said, right?

00:43:29.182 --> 00:43:32.763
And then it uses that to generate its response.

00:43:32.883 --> 00:43:34.503
But I have this conversation mode.

00:43:36.924 --> 00:43:40.665
Yes, especially when I get to tinker with Emacs.

00:43:42.406 --> 00:43:45.447
And then... What happened when you get to tinker

00:43:45.467 --> 00:43:46.047
with Emacs?

00:43:47.215 --> 00:43:49.036
Does the TTS come through?

00:43:49.256 --> 00:43:51.036
Yeah, it does.

00:43:51.216 --> 00:43:54.057
The reason I did this was because after I

00:43:54.097 --> 00:43:56.437
showed off my vocal commands to Emacs Paris, they

00:43:56.457 --> 00:43:58.238
were like, oh, you know, what if you can have a

00:43:58.278 --> 00:43:58.898
conversation?

00:43:59.338 --> 00:44:01.418
So I was like, okay, let's come back full circle

00:44:01.458 --> 00:44:03.919
to the thing that got me curious about Emacs in

00:44:03.939 --> 00:44:07.220
the first place and voice enable that.

00:44:07.580 --> 00:44:09.560
And then, of course, this is a very old AI.

NOTE Demo: speech-enabled conversation with a large language model in French

00:44:09.580 --> 00:44:11.541
It's much more interesting if you apply it to the

00:44:11.661 --> 00:44:12.401
new models.

00:44:12.981 --> 00:44:16.282
So if I want to, for example, practice French.

00:44:17.522 --> 00:44:21.843
This is one of my voice commands here.

00:44:25.044 --> 00:44:26.605
[Computer]: "I would appreciate it if you would continue."

00:44:27.565 --> 00:44:28.225
Okay, here we are.

00:44:28.865 --> 00:44:33.447
Then I might say, "Je parle avec Linkarzu."

00:44:34.027 --> 00:44:37.208
And then I think, there you go.

00:44:38.968 --> 00:44:40.889
It will eventually, maybe?

00:44:43.047 --> 00:44:45.611
[Computer]: Ah, c'est super de discuter avec lui.

00:44:45.911 --> 00:44:48.354
C'est toujours enrichissant de partager, toucher

00:44:48.394 --> 00:44:49.576
ses passions en direct.

00:44:49.836 --> 00:44:52.159
Quels sujets abordez-vous ensemble aujourd'hui ?

00:44:52.649 --> 00:44:53.009
[Sacha]: All right.

00:44:53.749 --> 00:44:57.491
So this now uses a large language model.

00:44:57.531 --> 00:45:01.512
This one uses Gemini because gptel makes it super

00:45:01.552 --> 00:45:03.833
easy to plug in different models.

00:45:04.113 --> 00:45:07.194
So, if I wanted to practice French but I don't

00:45:07.234 --> 00:45:10.815
necessarily want to bug people because I take a

00:45:10.855 --> 00:45:12.636
while to think about my words and sometimes I'm

00:45:12.656 --> 00:45:14.776
looking stuff up, then at least I can simulate

00:45:14.796 --> 00:45:15.837
that kind of conversation.

00:45:15.897 --> 00:45:18.437
There are gazillion apps that will sell you a

00:45:18.477 --> 00:45:19.578
subscription to do this.

00:45:20.318 --> 00:45:22.760
But because it's here and it's plain text and I

00:45:22.800 --> 00:45:25.442
can control it, then I can more easily go through

00:45:25.482 --> 00:45:29.684
it afterwards and analyze the vocabulary or

00:45:31.265 --> 00:45:33.287
correct the things that it didn't get right,

00:45:33.427 --> 00:45:36.309
which I know is because of the speech recognition

00:45:36.369 --> 00:45:37.870
and not because of me or whatever.

00:45:39.111 --> 00:45:41.292
So it's so much fun to be able to tinker with

00:45:41.352 --> 00:45:43.494
Emacs to do what I wanted to do.

00:45:44.537 --> 00:45:46.658
[Linkarzu]: Yeah, pretty powerful.

NOTE Linux setup: XFCE, X11 and Emacs on top

00:45:46.878 --> 00:45:49.919
I have a question about your operating system.

00:45:50.419 --> 00:45:52.280
What did you go with?

00:45:52.520 --> 00:45:53.621
I see this is Linux.

00:45:53.821 --> 00:45:55.221
I would assume it's Linux, right?

00:45:55.582 --> 00:45:57.803
Of course, it must be Linux.

00:45:58.163 --> 00:45:59.743
[Sacha]: This is Linux.

00:45:59.983 --> 00:46:03.025
I used to be in Kubuntu because I liked KDE, but

00:46:03.065 --> 00:46:07.227
when I recently upgraded to the latest version of

00:46:07.247 --> 00:46:09.909
Ubuntu, then I broke everything. I was

00:46:09.949 --> 00:46:12.351
like, okay, this Wayland stuff is getting in the

00:46:12.391 --> 00:46:14.292
way of the automation that I like doing.

00:46:14.813 --> 00:46:17.735
So I'm back to X11. I was like, hey, let's try

00:46:17.775 --> 00:46:18.815
something a little more lightweight.

00:46:18.855 --> 00:46:22.098
This is the XFCE Window Manager at the moment.

00:46:22.278 --> 00:46:23.278
I'm still settling into it.

00:46:23.298 --> 00:46:24.639
There are lots of little things that I'm learning

00:46:24.659 --> 00:46:26.961
how to configure, but yeah, just Linux.

00:46:27.648 --> 00:46:29.870
[Linkarzu]: Okay, Linux, Kubuntu.

00:46:30.050 --> 00:46:32.192
Why did you decide to go with that distro?

00:46:32.473 --> 00:46:35.816
Is there a specific reason or no?

00:46:36.036 --> 00:46:38.778
[Sacha]: No, it's more like, well, my husband

00:46:38.818 --> 00:46:42.081
happened to have an install USB lying around.

00:46:44.444 --> 00:46:50.049
I used to be on Debian unstable,

00:46:51.858 --> 00:46:54.919
and then I switched to Ubuntu. It's just one

00:46:54.939 --> 00:46:56.560
of those things that I haven't bothered enough

00:46:56.600 --> 00:46:59.982
about to change, on account of changing requires

00:47:00.022 --> 00:47:02.823
me to go reinstall a lot of things

00:47:02.824 --> 00:47:04.824
and then get my Emacs working the way

00:47:04.825 --> 00:47:05.966
that I want it to do again.

NOTE #+COMMENT: Clipped as highlight

00:47:06.526 --> 00:47:09.648
At the moment, Linux is the library that Emacs

00:47:09.708 --> 00:47:10.768
uses to talk to my hardware.

00:47:12.118 --> 00:47:14.119
[Linkarzu]: Yeah, it's just the base, right?

00:47:14.359 --> 00:47:16.761
You just want something where you can run Emacs

00:47:16.961 --> 00:47:17.561
on, right?

00:47:17.941 --> 00:47:18.242
[Sacha]: Yes.

NOTE Automating other apps with Emacs; X11 versus Wayland for automation

00:47:18.682 --> 00:47:20.683
I want something where I can let Emacs

00:47:20.723 --> 00:47:22.984
control as much of my computer as possible.

00:47:23.485 --> 00:47:27.967
So for example, when I set up the BigBlueButton

00:47:28.007 --> 00:47:30.729
web conference rooms for EmacsConf, I do that in

00:47:30.809 --> 00:47:33.810
Firefox because I can have Emacs control Firefox

00:47:34.151 --> 00:47:36.192
so that it can click through the different

00:47:36.632 --> 00:47:39.734
screens and set all the moderator access codes or

00:47:39.754 --> 00:47:41.415
whatever else and confirm the settings.

00:47:41.915 --> 00:47:43.597
I don't have to do that kind of clicking and

00:47:43.617 --> 00:47:44.337
typing myself.

00:47:45.598 --> 00:47:45.918
[Linkarzu]: Okay.

00:47:46.239 --> 00:47:49.802
And you mentioned that you switched back to X11

00:47:49.862 --> 00:47:52.584
because Wayland was getting in the way.

00:47:52.924 --> 00:47:54.726
Can you share a little bit more about that?

00:47:54.746 --> 00:47:55.767
I'm not a Linux user.

00:47:56.087 --> 00:47:57.228
I'm a Mac OS user.

00:47:57.508 --> 00:48:00.831
But I know about the words that you're mentioning

00:48:00.851 --> 00:48:03.733
because all of the guests that I bring over talk

00:48:03.753 --> 00:48:06.356
about it and I'm like, okay, so they're like, okay, got it.

00:48:06.376 --> 00:48:07.637
So what happened there?

00:48:08.973 --> 00:48:11.318
[Sacha]: I think it's just a different security

00:48:11.358 --> 00:48:11.999
model, right?

00:48:12.039 --> 00:48:13.722
So for Wayland, which is one of the

00:48:15.487 --> 00:48:18.968
like the window system compositors(?),

00:48:19.048 --> 00:48:21.969
how stuff shows up on your screen.

00:48:22.929 --> 00:48:25.870
The way that it's conceptualized is every

00:48:25.970 --> 00:48:28.350
application is sandboxed, so it shouldn't be able

00:48:28.370 --> 00:48:30.711
to mess around with other applications' windows,

00:48:31.231 --> 00:48:32.612
which is more secure. Great.

00:48:33.052 --> 00:48:35.152
But I actually do want my Emacs to mess around

00:48:35.172 --> 00:48:36.352
with other people's windows,

00:48:36.353 --> 00:48:37.192
and I want things to be...

00:48:37.193 --> 00:48:38.633
[Linkarzu]: Emacs is the king, right?

00:48:38.733 --> 00:48:40.814
Emacs has to be able to do anything

00:48:40.874 --> 00:48:41.654
it wants, right?

00:48:42.054 --> 00:48:42.494
[Sacha]: Yeah, yeah.

00:48:42.634 --> 00:48:44.274
And I want that to happen without

00:48:44.275 --> 00:48:45.376
a gazillion prompts.

00:48:45.836 --> 00:48:47.717
"Are you sure you want to let..."

00:48:47.718 --> 00:48:50.218
Yes, I want it to do the typing

00:48:50.219 --> 00:48:53.081
so that I don't have to do the typing.

00:48:55.202 --> 00:48:56.743
So yeah, it's pretty good.

00:48:57.684 --> 00:49:01.567
Maybe someday X11 will totally shut down and then

00:49:01.607 --> 00:49:02.287
I'll have to move.

00:49:02.347 --> 00:49:04.588
But I can give people a few more years or

00:49:04.608 --> 00:49:06.830
whatever to figure out the automation and

00:49:06.870 --> 00:49:08.851
accessibility parts that I would need in order to

00:49:08.891 --> 00:49:09.992
do that kind of automation.

00:49:10.906 --> 00:49:11.867
[Linkarzu]: Okay, okay.

00:49:12.367 --> 00:49:14.989
So you're in Kubuntu, you're on X11.

NOTE Just a regular laptop keyboard

00:49:15.009 --> 00:49:18.070
Then I also wanted to ask you, do you use like

00:49:18.371 --> 00:49:21.532
one of these special keyboards that all the cool

00:49:21.573 --> 00:49:23.754
kids use or are you just a normal keyboard?

00:49:24.745 --> 00:49:25.786
[Sacha]: I'm just on my laptop.

00:49:25.806 --> 00:49:27.726
Yeah. I'm going to tilt the screen down

00:49:27.727 --> 00:49:28.848
and mess things up.

00:49:28.948 --> 00:49:30.149
See, that's it.

00:49:30.309 --> 00:49:31.170
That's the thing.

00:49:31.510 --> 00:49:33.791
[Linkarzu]: The laptop keyboard.

00:49:34.352 --> 00:49:37.634
Has it ever caused any issues for you?

00:49:37.854 --> 00:49:41.317
Like hand pain, wrist pain or something like that?

00:49:42.423 --> 00:49:44.024
[Sacha]: No, the only wrist pain I got was from

00:49:44.064 --> 00:49:45.945
lifting my daughter the wrong way, which gave me

00:49:45.985 --> 00:49:47.605
the de Quervain's tenosynovitis.

00:49:47.665 --> 00:49:50.245
Do not pick up your kids without

00:49:50.246 --> 00:49:51.467
paying attention to how you do it.

00:49:51.487 --> 00:49:52.166
[Linkarzu]: Because you hold them

00:49:52.167 --> 00:49:52.767
like this, right?

00:49:52.827 --> 00:49:54.368
That happened to my wife as well.

00:49:54.568 --> 00:49:56.589
[Sacha]: Yeah, yeah, yeah.

NOTE Using Emacspeak to deal with laptop screen failure

00:49:56.749 --> 00:49:59.589
But I've been interested in accessibility

00:49:59.590 --> 00:50:00.291
for a while.

00:50:00.811 --> 00:50:02.571
Also partially because of...

00:50:04.993 --> 00:50:06.594
So, okay, so here's what happened.

00:50:07.034 --> 00:50:09.655
In about third or fourth year of

00:50:09.755 --> 00:50:12.517
university, I was also on a laptop, and my

00:50:12.597 --> 00:50:14.978
screen stopped working occasionally. It would

00:50:14.998 --> 00:50:17.039
glitch out, and I could not see.

00:50:17.740 --> 00:50:19.441
I mean, it would be super low contrast, and you

00:50:19.461 --> 00:50:21.082
could see things if you look at it from the right

00:50:21.222 --> 00:50:24.424
angle, but it would just glitch out like that.

00:50:24.504 --> 00:50:26.564
I could plug in an external monitor, sure,

00:50:26.565 --> 00:50:28.585
but I can't plug in an external monitor

00:50:28.586 --> 00:50:29.486
in the middle of class.

00:50:29.527 --> 00:50:31.247
I'm not going to lug a monitor around, right?

00:50:32.559 --> 00:50:35.723
And while I did experiment with a head-mounted

00:50:35.763 --> 00:50:38.166
display as part of my curiosity into wearable

00:50:38.206 --> 00:50:41.750
computing, that is also fairly obvious

00:50:41.751 --> 00:50:42.872
and large and awkward.

00:50:44.714 --> 00:50:46.717
You know that smart glasses video that you had?

00:50:46.777 --> 00:50:49.000
Okay, now they can pass off as glasses, right?

00:50:49.060 --> 00:50:51.523
But back then it was a huge Borg-like thing.

00:50:52.959 --> 00:50:54.860
But fortunately, Emacs has Emacspeak.

00:50:55.401 --> 00:50:59.205
So I was using speech synthesis to code and to

00:50:59.225 --> 00:51:01.887
take notes and do all those other things, which

00:51:01.927 --> 00:51:02.768
was fantastic.

00:51:02.868 --> 00:51:03.869
It actually worked.

00:51:04.009 --> 00:51:05.751
It worked so well that I was like, you know what?

00:51:05.771 --> 00:51:08.594
I could use this to listen to manuals and write

00:51:08.674 --> 00:51:10.596
notes and look up things while I'm walking around

00:51:10.876 --> 00:51:12.658
because all I need is a portable keyboard.

00:51:13.158 --> 00:51:14.540
They make one-handed keyboards.

00:51:15.680 --> 00:51:20.281
And a pair of earphones, and nobody can tell that

00:51:20.361 --> 00:51:23.262
I'm actually reading, well, having read to me

00:51:24.002 --> 00:51:26.463
some kind of... This is me going

00:51:26.483 --> 00:51:29.262
through the Emacs manual

00:51:29.263 --> 00:51:30.384
while walking around, right?

00:51:32.284 --> 00:51:33.364
Anyway, so, accessibility.

00:51:33.884 --> 00:51:36.145
The text-to-speech part is very interesting

00:51:36.185 --> 00:51:38.025
and there are a lot of people who are using Emacs

00:51:38.125 --> 00:51:40.786
even if they're blind or visually-impaired.

00:51:40.846 --> 00:51:43.187
all this stuff is actually surprisingly useful

00:51:43.267 --> 00:51:44.347
also for people who aren't.

NOTE Anticipating physical and cognitive challenges

00:51:45.392 --> 00:51:46.992
The speech recognition stuff

00:51:46.993 --> 00:51:48.514
I think will be very helpful

00:51:48.515 --> 00:51:50.256
in case something happens to my hands.

00:51:50.296 --> 00:51:52.818
People have accidents or people get sick.

00:51:52.858 --> 00:51:55.100
My mom has Parkinson's, so her tremors make it

00:51:55.140 --> 00:51:57.042
really hard for her to type or tap things.

00:51:57.602 --> 00:52:01.446
It's amazing that we can keep modifying the

00:52:01.486 --> 00:52:05.208
tools to make this kind of speech input,

00:52:05.209 --> 00:52:06.930
voice commands a lot easier.

00:52:08.992 --> 00:52:12.354
There's also physical decline and there's

00:52:12.414 --> 00:52:13.314
cognitive decline.

00:52:13.814 --> 00:52:15.955
I've had to deal with brain fog as part of the

00:52:15.995 --> 00:52:17.776
sleep deprivation of early parenting.

00:52:18.276 --> 00:52:21.238
So I know my ability to memorize things and my

00:52:21.278 --> 00:52:24.739
ability to type while I'm talking is nowhere near

00:52:25.620 --> 00:52:28.821
what I would have in an ideal world.

00:52:29.582 --> 00:52:32.263
It's great to be able to modify my

00:52:32.483 --> 00:52:34.984
computing environment to adapt to these changes

00:52:35.064 --> 00:52:36.505
and to the changes that I anticipate.

NOTE Describing Emacspeak

00:52:37.368 --> 00:52:39.329
[Linkarzu]: Oh, and you mentioned Emacspeak.

00:52:39.510 --> 00:52:40.670
So what is it then?

00:52:40.710 --> 00:52:44.473
It's just accessibility option in Emacs that

00:52:44.593 --> 00:52:47.675
reads your screen or something?

00:52:48.936 --> 00:52:50.057
[Sacha]: It can read a whole thing.

00:52:50.137 --> 00:52:52.298
It can read character by character to give you

00:52:52.418 --> 00:52:54.680
audio feedback.

00:52:54.840 --> 00:52:57.022
You can go by word or by sentence as you're

00:52:57.062 --> 00:52:58.162
navigating around the text.

00:52:58.523 --> 00:53:01.785
I don't have it set up in this one, but I think I

00:53:01.805 --> 00:53:04.207
have a different profile where I have it set up,

00:53:04.247 --> 00:53:08.268
because by default, when you launch it,

00:53:08.269 --> 00:53:09.950
it reads all of Emacs to you.

00:53:10.430 --> 00:53:12.131
It doesn't just say the text.

00:53:12.572 --> 00:53:15.634
It will also give you auditory icons.

00:53:15.734 --> 00:53:18.195
So for example, if something is bold, you can

00:53:18.255 --> 00:53:20.397
have it say it in a different voice.

00:53:20.497 --> 00:53:23.819
If something is italicized, you can have it say

00:53:23.859 --> 00:53:25.460
it in a higher pitch or something else.

00:53:26.120 --> 00:53:28.562
If there are icons, it can play sounds instead of

00:53:28.602 --> 00:53:29.302
those icons.

00:53:29.782 --> 00:53:32.103
So it gives people who are blind

00:53:32.104 --> 00:53:33.545
this much richer experience.

00:53:34.585 --> 00:53:38.548
I love the fact that Emacs has these things

00:53:38.608 --> 00:53:40.330
with all these different kinds of needs.

00:53:40.990 --> 00:53:42.171
I've used it.

00:53:42.271 --> 00:53:42.932
It's great.

00:53:43.352 --> 00:53:46.715
I found that when I was using it, I could listen

00:53:46.755 --> 00:53:49.997
to things at 300 words a minute or even higher,

00:53:50.117 --> 00:53:51.318
and I would still understand.

NOTE Linkarzu adjusts his electric sitting/standing desk

00:53:51.338 --> 00:53:52.880
[Linkarzu]: I'm sorry.

00:53:52.960 --> 00:53:56.943
It's just my desk going down because I try to...

00:53:57.103 --> 00:54:00.405
[Sacha]: I thought you were like genuflecting in

00:54:00.445 --> 00:54:01.987
front of Emacs is awesome.

00:54:04.472 --> 00:54:08.239
[Linkarzu]: Yeah, I just try to, you know, adopt

00:54:08.419 --> 00:54:10.143
different positions throughout the day.

00:54:10.824 --> 00:54:11.305
There's a question.

00:54:11.325 --> 00:54:11.986
Oh yeah, for sure.

00:54:12.607 --> 00:54:13.770
You do it as well?

NOTE Parenting and fragmented time

00:54:13.870 --> 00:54:15.052
How long do you spend sitting?

00:54:15.172 --> 00:54:16.956
Like, do you spend sitting most of the day?

00:54:18.167 --> 00:54:19.788
[Sacha]: Most of the time, actually, I have to go

00:54:19.848 --> 00:54:21.209
help out the kiddo, right?

00:54:22.150 --> 00:54:24.612
So that keeps me away from the computer, which is

00:54:24.712 --> 00:54:27.715
one of the reasons why I've had to learn how to

00:54:27.775 --> 00:54:29.796
deal with very fragmented time.

00:54:30.637 --> 00:54:32.719
Not much time sitting in front of the computer to

00:54:32.779 --> 00:54:33.619
focus on something.

00:54:33.699 --> 00:54:36.501
Everything that I want to do has to be something

00:54:36.521 --> 00:54:38.542
that I can do in 5, 10, 15 minutes,

00:54:38.543 --> 00:54:39.444
maybe 30 minutes.

00:54:39.964 --> 00:54:44.706
At the moment, she's fairly independent, but I

00:54:44.746 --> 00:54:46.566
can still be interrupted by somebody who needs

00:54:46.626 --> 00:54:49.287
breakfast or somebody who needs a hug and

00:54:49.307 --> 00:54:49.727
whatever.

00:54:49.907 --> 00:54:52.048
So I need to be able to capture a thought, get it

00:54:52.088 --> 00:54:54.048
out of the way and work on things in tiny chunks.

00:54:55.089 --> 00:54:57.809
[Linkarzu]: I've seen my wife, how she handles

00:54:57.869 --> 00:54:58.950
things and I'm like, man...

00:54:59.690 --> 00:55:02.711
It's a lot of mental overhead.

00:55:04.952 --> 00:55:08.593
That's a whole other conversation.

00:55:09.234 --> 00:55:12.255
Men are the ones that make progress, build their

00:55:12.515 --> 00:55:13.774
professional careers,

00:55:13.775 --> 00:55:17.177
and wives usually take care of the kids.

00:55:19.537 --> 00:55:20.798
It's a huge sacrifice.

00:55:20.858 --> 00:55:21.778
What do you think?

00:55:21.798 --> 00:55:23.219
How do you feel about all that?

00:55:24.162 --> 00:55:27.083
[Sacha]: I signed up for it totally knowing what

00:55:27.143 --> 00:55:28.023
I was getting into.

00:55:28.323 --> 00:55:30.304
I was like, okay, there's a lot involved in being

00:55:30.364 --> 00:55:31.844
the default parent, right?

00:55:31.864 --> 00:55:34.985
The primary person who patches up [owies]...

NOTE Org Mode helps me stay sane

00:55:35.965 --> 00:55:39.186
But I think partly because of Org Mode and Emacs,

00:55:39.866 --> 00:55:41.986
it's been very helpful to me

00:55:41.987 --> 00:55:44.207
to be able to say, "Yeah, that's a great idea.

00:55:44.267 --> 00:55:46.448
I'm going to write that down in my phone or on my

00:55:46.488 --> 00:55:49.609
computer. Usually on my phone back in early

00:55:49.669 --> 00:55:51.849
parenting days, because I'm away from my computer,

00:55:51.889 --> 00:55:53.630
I'm at the playground or whatever else, right?

00:55:54.150 --> 00:55:57.031
So the fact that I can capture a note

00:55:57.032 --> 00:55:59.352
into Org Mode and then know that

00:55:59.353 --> 00:56:00.512
I can get back to it

00:56:00.513 --> 00:56:02.573
in several years when I have more free time

00:56:02.574 --> 00:56:04.674
or that Org Mode can keep track

00:56:04.675 --> 00:56:05.636
of the deadlines that

00:56:05.696 --> 00:56:07.577
might be a year from now, like when I need to

00:56:07.957 --> 00:56:10.858
renew my passport and just have that surface the

00:56:10.918 --> 00:56:13.059
reminder at the right time, with the notes on

00:56:13.099 --> 00:56:15.420
exactly what I need to do and the links to

00:56:15.440 --> 00:56:16.341
wherever I need to go.

00:56:16.801 --> 00:56:19.022
I think that has been very, very helpful for me.

NOTE Capturing tasks while away from the computer: Linkarzu uses speech

00:56:20.663 --> 00:56:21.643
[Linkarzu]: Good point that you brought up.

00:56:21.663 --> 00:56:24.544
Quite a few days ago, I just

00:56:24.624 --> 00:56:28.425
came up... Well, the clanker came up with a method,

00:56:28.426 --> 00:56:31.807
we could say, of me just tapping it, saying something

00:56:31.847 --> 00:56:35.148
to it, and when I come to my computer, the task is

00:56:35.208 --> 00:56:36.889
there in Neovim. Right?

00:56:37.509 --> 00:56:41.031
Because I forget. I'm outside. I have

00:56:41.071 --> 00:56:43.331
to remember this. I'm not going to remember

00:56:43.371 --> 00:56:44.731
it. It's just going to go away.

00:56:44.732 --> 00:56:46.993
So I do it on the phone, shows up in Neovim,

00:56:47.833 --> 00:56:49.975
and it's a huge benefit.

00:56:50.155 --> 00:56:52.317
How do you do it?

NOTE I use Orgzly Revived, sometimes with dictation

00:56:52.838 --> 00:56:55.540
[Sacha]: For my phone, I often just put it into

00:56:55.560 --> 00:56:58.023
Orgzly Revived, sometimes with dictation,

00:56:58.063 --> 00:56:59.984
sometimes just typing in a few keywords to help

00:57:00.024 --> 00:57:00.545
me remember.

00:57:01.005 --> 00:57:02.547
A lot of times it's, you know, if I'm coming

00:57:02.607 --> 00:57:03.346
across...

00:57:03.347 --> 00:57:04.689
Orgzly Revived?

00:57:05.069 --> 00:57:05.449
[Linkarzu]: What is it?

00:57:05.930 --> 00:57:08.192
[Sacha]: O-G-R-Z-L-Y. [clearly can't spell on stream]

00:57:08.212 --> 00:57:10.774
[Linkarzu]: If you want to show it, I don't know.

00:57:12.456 --> 00:57:13.477
[Sacha]: It's on my phone.

00:57:16.760 --> 00:57:18.393
[Linkarzu]: Is it like an app?

00:57:18.960 --> 00:57:21.139
[Sacha]: Yeah. So I use an Android phone.

00:57:21.379 --> 00:57:24.720
Now there are actually a gazillion apps that

00:57:25.060 --> 00:57:27.321
talk Org Mode and can synchronize with your files

00:57:27.361 --> 00:57:27.841
and whatever.

00:57:28.281 --> 00:57:31.162
I'm currently still just using Orgzly Revived as

00:57:31.202 --> 00:57:33.222
an app on my phone with Syncthing.

00:57:33.862 --> 00:57:37.303
Syncthing being the free synchronization that I

00:57:37.343 --> 00:57:39.744
can use to just get my files back and forth.

00:57:41.133 --> 00:57:43.215
But there are lots of other alternatives, so you

00:57:43.235 --> 00:57:44.576
can find something that fits you well.

NOTE I want to get the hang of Emacs's Android port

00:57:45.076 --> 00:57:47.899
I am very tempted to figure out, finally, how to

00:57:48.099 --> 00:57:51.401
use Emacs native, because there's an Emacs port

00:57:51.482 --> 00:57:52.142
for Android.

00:57:53.183 --> 00:57:55.725
Especially if I can get my speech synthesis and

00:57:55.785 --> 00:57:57.466
speech recognition working on it, I think that

00:57:57.486 --> 00:58:00.069
would be amazing to have this kind of

00:58:00.189 --> 00:58:02.451
conversation with Emacs along the way.

NOTE
Demo: Speech commands on my computer: Remind me...
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-00-58-36-054.jpg
#+SCREENSHOT_TIME: 00:58:36.054

00:58:02.871 --> 00:58:04.652
And then on the computer, if I need to capture

00:58:04.692 --> 00:58:06.554
something quickly, ooh, I can show you this one.

00:58:07.555 --> 00:58:08.035
Let's see.

00:58:10.397 --> 00:58:12.998
"Remind me to put together a quick description of

00:58:13.278 --> 00:58:16.418
my to-do workflow."

00:58:18.399 --> 00:58:21.759
It will take that note and it will stick it

00:58:21.919 --> 00:58:23.660
into an inbox.

00:58:24.380 --> 00:58:31.301
Here I'm in live mode so my public tasks don't

00:58:31.341 --> 00:58:32.961
get mixed in with my private tasks.

00:58:33.001 --> 00:58:34.682
If I do an agenda, it should just be limited to

00:58:34.702 --> 00:58:35.322
the public stuff.

00:58:36.042 --> 00:58:39.844
Anyway, so the "Remind me" created the note for me.

00:58:40.045 --> 00:58:45.148
It includes the audio in case the speech

00:58:45.188 --> 00:58:46.769
recognition didn't get anything right.

00:58:47.169 --> 00:58:49.490
It includes a screenshot so that in case I'm

00:58:49.550 --> 00:58:51.552
doing this from a different application, because

00:58:51.592 --> 00:58:54.133
my keyboard shortcut is global, I can still see

00:58:54.153 --> 00:58:57.075
the context and go find that sort of stuff.

00:58:59.208 --> 00:59:01.470
[Linkarzu]: Quite interesting, quite advanced,

00:59:01.630 --> 00:59:02.411
quite complex.

00:59:02.792 --> 00:59:05.935
It must have taken you months, years to set all

00:59:05.975 --> 00:59:06.536
of this up.

00:59:07.317 --> 00:59:08.819
[Sacha]: As I said, I can only work in like 30

00:59:08.859 --> 00:59:09.399
minutes or so.

00:59:09.459 --> 00:59:13.204
So this one, I think was a 10, 15 minute hack.

00:59:16.308 --> 00:59:18.069
Little bits of time.

00:59:18.169 --> 00:59:20.050
This link here to whatever I was looking at, you

00:59:20.070 --> 00:59:21.991
got that free from Org Mode.

00:59:22.091 --> 00:59:25.114
This thing here with the recording, I got that

00:59:25.174 --> 00:59:27.815
because I already wanted to save my recordings

00:59:27.875 --> 00:59:28.176
anyway.

00:59:28.196 --> 00:59:30.257
So it was just a matter of adding a link to the

00:59:30.397 --> 00:59:31.678
file name that I already had saved.

00:59:32.258 --> 00:59:34.680
This screenshot, you know, another five minutes

00:59:35.040 --> 00:59:37.482
because I already had Spectacle capturing the

00:59:37.502 --> 00:59:38.963
screenshot of both screens.

00:59:40.063 --> 00:59:41.364
So it's fairly simple.

00:59:42.025 --> 00:59:44.646
It will even work for things like, remind me next

00:59:44.686 --> 00:59:46.547
month to follow up with Linkarzu to see whether

00:59:46.587 --> 00:59:47.508
he's switched to Emacs.

NOTE My Emacs configuration keeps growing

00:59:50.155 --> 00:59:54.137
[Linkarzu]: I mean your entire Emacs config.

00:59:54.537 --> 00:59:56.858
Has it taken you years to adapt it?

00:59:57.258 --> 01:00:01.620
[Sacha]: It just keeps growing, right?

01:00:02.580 --> 01:00:03.381
I have an idea.

01:00:03.561 --> 01:00:08.923
It takes me 5, 15, 10 minutes to put it in and

01:00:09.923 --> 01:00:10.744
then it just accretes.

01:00:11.144 --> 01:00:13.145
I can't make very big changes because

01:00:13.865 --> 01:00:15.726
If I try to work on something big

01:00:15.727 --> 01:00:17.147
and then I get interrupted,

01:00:17.148 --> 01:00:18.569
the Ovsiankina effect makes me

01:00:18.609 --> 01:00:19.150
very grumpy.

01:00:19.310 --> 01:00:20.750
I have an unfinished task and

01:00:20.751 --> 01:00:22.212
it's like nagging at me.

01:00:22.633 --> 01:00:24.473
So it has to be always small chunks,

01:00:24.474 --> 01:00:26.375
but Emacs makes it super easy to work

01:00:26.376 --> 01:00:27.617
in those tiny, tiny chunks.

01:00:27.957 --> 01:00:29.979
So this one here, for example, it says, remind me

01:00:30.359 --> 01:00:31.560
next month, et cetera, et cetera.

01:00:31.600 --> 01:00:33.142
And it has scheduled it for next month.

01:00:33.682 --> 01:00:36.140
[Linkarzu]: That's pretty cool.

01:00:36.180 --> 01:00:37.480
[Sacha]: I'm not actually going to pressure you

01:00:37.500 --> 01:00:38.421
to switch to Emacs.

01:00:38.461 --> 01:00:40.741
You can keep using Neovim and just borrow all the

01:00:40.761 --> 01:00:41.541
interesting ideas.

01:00:42.301 --> 01:00:43.542
[Linkarzu]: Org.nvim is there.

01:00:43.982 --> 01:00:46.882
I can adapt it to do this, you know.

01:00:48.703 --> 01:00:50.443
There's a question in chat.

01:00:50.643 --> 01:00:54.424
I ignore chat unless they bring the coin, okay?

01:00:54.604 --> 01:00:57.645
But there is one question that I will allow this

01:00:57.765 --> 01:00:58.885
peasant in.

01:00:58.885 --> 01:01:01.186
in our conversation.

NOTE What about EXWM, the Emacs X11 window manager?

01:01:01.507 --> 01:01:03.488
frazzor749 is asking, we were talking about window

01:01:03.508 --> 01:01:03.908
managers.

01:01:04.289 --> 01:01:07.170
What about EXWM when we were talking about

01:01:08.091 --> 01:01:09.292
Wayland and all that stuff?

01:01:10.292 --> 01:01:12.114
[Sacha]: There are window managers written in

01:01:12.134 --> 01:01:17.837
Emacs Lisp and people who use EXWM really like it.

01:01:17.877 --> 01:01:20.438
There's actually even an EWM as well right now,

01:01:20.439 --> 01:01:21.680
I think.

01:01:21.840 --> 01:01:23.220
I remember playing around with it

01:01:23.221 --> 01:01:24.001
a couple of times.

01:01:25.322 --> 01:01:27.243
Maybe I should check it out again.

01:01:27.843 --> 01:01:29.483
The first time that I played around with it,

01:01:29.484 --> 01:01:31.244
my laptop was even older than this one

01:01:31.245 --> 01:01:32.105
and not as capable.

01:01:32.505 --> 01:01:37.306
So maybe now that I am on a 2018 laptop,

01:01:37.307 --> 01:01:38.828
it might work better for me.

01:01:39.988 --> 01:01:42.009
Because it is nice to be able to...

01:01:42.369 --> 01:01:43.168
It would be great to be able to

01:01:43.169 --> 01:01:45.990
just press `C-x b` and switch to another application

01:01:45.991 --> 01:01:47.451
just like I switch to other buffers.

01:01:49.172 --> 01:01:53.734
[Linkarzu]: Yep. Moving on to other topics.

NOTE AI and the Emacs community

01:01:55.605 --> 01:01:59.407
How do you feel about all of this new world that

01:01:59.447 --> 01:02:02.209
we're in, AI-related stuff?

01:02:02.309 --> 01:02:05.510
I've seen that it's evolving quite fast and

01:02:06.711 --> 01:02:08.412
software is changing.

01:02:08.472 --> 01:02:11.073
The way that we look at software is changing.

01:02:11.193 --> 01:02:14.275
It used to be something that only a small set of

01:02:14.295 --> 01:02:15.816
people could do in the past.

01:02:16.096 --> 01:02:18.898
Now, people like me or anyone else, even frazzor749,

01:02:19.178 --> 01:02:24.060
can vibe-slop solutions and have them up in minutes.

01:02:25.321 --> 01:02:27.402
Does that make you feel something?

01:02:27.422 --> 01:02:29.442
Does that make you feel sad, happy?

01:02:29.462 --> 01:02:30.662
How do you feel about all this?

01:02:32.003 --> 01:02:34.043
[Sacha]: I love seeing the comments from people

01:02:34.123 --> 01:02:36.684
who are like, "You know, I had a hard time

01:02:36.704 --> 01:02:38.765
getting started with Emacs before, but now I can

01:02:39.065 --> 01:02:42.505
ask an LLM to generate me something or explain to

01:02:42.686 --> 01:02:44.945
me, explain something to me

01:02:44.946 --> 01:02:46.847
and I can get it working."

01:02:47.167 --> 01:02:47.887
So that's great.

01:02:48.547 --> 01:02:51.628
But I also like the fact that the people who do

01:02:51.688 --> 01:02:53.668
not want any of this stuff to happen to their

01:02:53.708 --> 01:02:57.769
particular Emacs can get together and find each

01:02:57.869 --> 01:03:02.750
other and say, you know what, if Emacs adopts AI

01:03:03.050 --> 01:03:05.630
more than I'm comfortable with, I commit to

01:03:06.090 --> 01:03:09.391
figuring things out the human way and continue to

01:03:09.411 --> 01:03:10.251
build it without that.

01:03:10.311 --> 01:03:12.811
So I love the fact that there are choices and

01:03:12.911 --> 01:03:15.432
people can make a choice that fits them.

01:03:16.477 --> 01:03:16.717
[Linkarzu]: Okay.

01:03:16.737 --> 01:03:18.399
[Sacha]: It's very exciting to see the ideas that

01:03:18.419 --> 01:03:19.199
people come up with.

01:03:19.760 --> 01:03:20.100
[Linkarzu]: Okay.

01:03:20.640 --> 01:03:22.101
And you also have the choice?

01:03:22.622 --> 01:03:22.822
[Sacha]: Yeah.

01:03:22.862 --> 01:03:24.763
Sometimes it's hard to read the code because it's

01:03:24.984 --> 01:03:28.786
super long. Like, you have that example from

01:03:28.826 --> 01:03:31.008
someone on your chat, right?

01:03:31.028 --> 01:03:33.590
Okay, you can generate a 3000 line

01:03:34.511 --> 01:03:37.313
module, but really you might only need 200 and

01:03:37.533 --> 01:03:39.635
that 200 is a lot easier to read.

01:03:40.035 --> 01:03:40.655
Maybe it was 300.

01:03:40.735 --> 01:03:40.996
Okay.

01:03:42.637 --> 01:03:43.237
[Linkarzu]: No, he said 3000.

01:03:43.257 --> 01:03:43.578
He said 3000.

01:03:44.198 --> 01:03:44.578
[Sacha]: No, no, no.

01:03:44.598 --> 01:03:47.779
His final, going from 3000 to

01:03:47.799 --> 01:03:49.540
something like 200 to 300 lines.

01:03:50.120 --> 01:03:53.782
Because if you know what else is out there and

01:03:54.282 --> 01:03:58.183
how you can hook into it, then it doesn't have to

01:03:58.523 --> 01:03:59.804
build everything from scratch.

01:04:03.746 --> 01:04:06.288
[Linkarzu]: We also have Prot as an option

01:04:06.408 --> 01:04:09.129
because he does his coaching sessions.

01:04:09.189 --> 01:04:11.111
You can learn about Emacs with Prot.

01:04:11.431 --> 01:04:12.972
We're going to put his link somewhere in here.

01:04:13.212 --> 01:04:15.313
I always leave the link in all of my video

01:04:15.333 --> 01:04:17.755
descriptions and all that stuff.

01:04:19.816 --> 01:04:22.177
How do you feel about AI?

01:04:22.878 --> 01:04:23.998
What do you think is going to happen

01:04:23.999 --> 01:04:25.179
in the future?

01:04:25.299 --> 01:04:26.660
Have you ever thought about it?

01:04:27.220 --> 01:04:29.122
How do you see software?

01:04:31.225 --> 01:04:33.006
[Sacha]: I have no idea what's going to happen in

01:04:33.026 --> 01:04:33.686
the near future.

01:04:34.827 --> 01:04:37.148
I know there's a lot of froth and a lot of like

01:04:37.788 --> 01:04:40.529
weird pressure from other people to use it or not

01:04:40.609 --> 01:04:41.169
use it or whatever.

01:04:42.450 --> 01:04:45.051
I think the business world has sort of tied

01:04:45.091 --> 01:04:46.032
itself in knots.

01:04:46.092 --> 01:04:47.812
We're just going to have to see how all of that

01:04:47.892 --> 01:04:48.753
stuff works out.

01:04:49.773 --> 01:04:54.674
In terms of using it myself, I use a very limited

01:04:55.355 --> 01:04:56.215
set of functionalities.

01:04:56.295 --> 01:04:58.775
Just the things that I can understand, again,

01:04:58.776 --> 01:05:00.976
5 to 15, 30 minutes at a time.

01:05:01.616 --> 01:05:05.237
I am not at the point where I can just trust the

01:05:05.317 --> 01:05:07.298
agent to run by itself and come back

01:05:07.818 --> 01:05:09.259
tomorrow with results.

NOTE Using large language models when learning a language

01:05:09.639 --> 01:05:12.480
I'm trying to learn French.

01:05:12.960 --> 01:05:14.761
I don't need anything fancy.

01:05:14.801 --> 01:05:19.602
I just need to know how to make my paragraph less

01:05:19.962 --> 01:05:21.203
grammatically terrible.

01:05:22.777 --> 01:05:25.339
The nice thing about large language models is

01:05:25.359 --> 01:05:26.740
that it tries to bring it towards

01:05:26.741 --> 01:05:27.682
that average, right?

01:05:27.702 --> 01:05:30.665
It can explain things or at least... There are a

01:05:30.685 --> 01:05:32.526
number of times that even with my beginner level,

01:05:33.187 --> 01:05:35.369
I can say, you know, that doesn't seem right.

01:05:35.469 --> 01:05:37.211
Then I can go and dig up the actual

01:05:37.271 --> 01:05:40.154
explanation and compare it against human examples,

01:05:40.214 --> 01:05:45.139
and ask my tutor, whom I meet twice a week and pay

01:05:45.259 --> 01:05:46.060
actual money to.

01:05:47.120 --> 01:05:51.361
But the fact that I can do this at 11 p.m. or

01:05:52.281 --> 01:05:56.122
whenever I'm free is helpful when it comes to

01:05:56.162 --> 01:05:57.683
getting that kind of instant feedback.

NOTE LLMs for troubleshooting

01:05:58.143 --> 01:06:00.023
I use it for troubleshooting sometimes

01:06:00.103 --> 01:06:02.284
because I'm like, I don't know what this error

01:06:02.304 --> 01:06:02.904
message is.

01:06:03.264 --> 01:06:05.244
Doing the exact search is not going to get me

01:06:05.785 --> 01:06:06.485
the right answer.

01:06:06.605 --> 01:06:09.205
But how would I start to understand this?

01:06:09.265 --> 01:06:10.546
What questions would I ask?

01:06:10.986 --> 01:06:12.886
That's sort of helpful there.

NOTE LLMs for proofs of concepts

01:06:13.226 --> 01:06:15.827
And for proofs of concept where, you know,

01:06:18.228 --> 01:06:21.389
I do not know enough about FFmpeg or Matplotlib

01:06:21.890 --> 01:06:26.032
or Python's internals to do some of the things

01:06:26.052 --> 01:06:27.833
that I want to do off the top of my head.

01:06:28.793 --> 01:06:31.954
So I'm like, okay, I will see.

01:06:32.415 --> 01:06:34.276
If I tried myself and I'm not getting anywhere,

01:06:34.316 --> 01:06:35.956
then I can say, okay, generate me a thing.

01:06:36.317 --> 01:06:38.016
And then I can try to see, okay,

01:06:38.017 --> 01:06:38.878
how is it doing that?

01:06:38.978 --> 01:06:39.918
Why is it doing that?

01:06:41.099 --> 01:06:43.080
And build on that.

01:06:43.961 --> 01:06:47.815
I like to keep things within one or two screens

01:06:47.835 --> 01:06:48.819
that I can actually read.

01:06:50.332 --> 01:06:53.413
[Linkarzu]: Okay, okay, okay.

01:06:53.653 --> 01:06:55.293
Yep, I started like that as well.

01:06:55.413 --> 01:06:58.954
I didn't trust it too much at the beginning, but

01:06:58.994 --> 01:07:01.514
it's been progressing and I think you just get

01:07:02.175 --> 01:07:05.835
more dependent on it, you know, and more and more

01:07:05.875 --> 01:07:11.577
and more and, you know, but it's gotten better.

01:07:11.637 --> 01:07:13.557
Do you use a specific model?

01:07:16.431 --> 01:07:21.652
[Sacha]: I use Gemini when I feel like it.

01:07:21.692 --> 01:07:26.794
The usage levels are quite high in the free tier.

01:07:27.914 --> 01:07:30.715
Sometimes I'll use Claude as well.

01:07:34.636 --> 01:07:36.437
My daughter has a subscription to Claude.

01:07:36.457 --> 01:07:38.157
We pay for a subscription to Claude for my

01:07:38.177 --> 01:07:40.658
daughter because she likes generating interactive

01:07:41.198 --> 01:07:43.719
stories to help her learn French vocabulary.

01:07:44.175 --> 01:07:45.256
[Linkarzu]: Okay, okay.

01:07:45.996 --> 01:07:47.777
[Sacha]: Which is great because then it can

01:07:47.817 --> 01:07:50.038
phrase everything in Pokémon terms.

01:07:50.058 --> 01:07:52.280
So that's easier for her to pay attention to.

01:07:53.580 --> 01:07:57.583
When she's asleep or when she's watching

01:07:57.603 --> 01:08:01.305
Pokémon, then I can use it without stepping on

01:08:01.345 --> 01:08:02.305
her budget.

01:08:02.325 --> 01:08:03.446
Stepping on her usage, right?

NOTE Kids' obsessions: Harry Potter, Pokemon, Wings of Fire

01:08:03.786 --> 01:08:05.487
[Linkarzu]: Is she into Harry Potter, your

01:08:05.507 --> 01:08:06.548
daughter, or not at all?

01:08:07.048 --> 01:08:08.249
[Sacha]: Only briefly.

01:08:08.569 --> 01:08:11.270
Pokemon remains her current main interest.

01:08:11.390 --> 01:08:13.752
She is the sort of person who reads the entire

01:08:13.792 --> 01:08:16.733
wiki and stuffs all of the factoids

01:08:16.734 --> 01:08:17.354
into her brain.

01:08:17.774 --> 01:08:19.895
[Linkarzu]: Oh, my daughter is in her Harry

01:08:19.955 --> 01:08:21.276
Potter phase right now.

01:08:21.555 --> 01:08:23.077
My wife bought all the books.

01:08:23.096 --> 01:08:25.658
I don't know, it's seven books, I think. Right?

01:08:26.719 --> 01:08:29.881
And the condition is, once you read a book, we

01:08:29.902 --> 01:08:32.162
can watch the movie, right?

01:08:32.542 --> 01:08:34.785
She's read like four, I think, and they're

01:08:34.845 --> 01:08:38.886
huge books and I'm like, man, that's tough.

01:08:39.127 --> 01:08:41.109
But she's in that phase right now.

01:08:41.540 --> 01:08:44.161
[Sacha]: Yeah. The novel series

01:08:44.162 --> 01:08:45.143
that my daughter is currently

01:08:45.203 --> 01:08:47.365
looping over is Wings of Fire.

01:08:47.625 --> 01:08:49.466
She's been into it before.

01:08:49.647 --> 01:08:51.147
So now we've checked out all the books

01:08:51.148 --> 01:08:51.809
from the library.

01:08:51.908 --> 01:08:52.890
I love the library.

01:08:52.930 --> 01:08:54.890
It saves me so much money.

01:08:55.152 --> 01:08:57.292
So she's reading that.

01:08:57.374 --> 01:08:58.715
There are graphic novels as well.

01:08:58.854 --> 01:09:00.756
It's great because then, you know, it makes it...

01:09:01.577 --> 01:09:02.277
There are graphic novels

01:09:02.278 --> 01:09:04.760
for the first seven or so books.

01:09:05.841 --> 01:09:07.181
I've also checked out

01:09:07.182 --> 01:09:08.582
the graphic novels in French.

01:09:10.283 --> 01:09:11.903
I get to read them and learn things.

01:09:12.243 --> 01:09:12.944
She's reading it.

01:09:12.984 --> 01:09:15.063
Because we're so familiar with the story...

01:09:15.064 --> 01:09:17.464
I like to learn about the things

01:09:17.465 --> 01:09:18.925
that my daughter is interested in.

01:09:18.984 --> 01:09:21.385
So for example, when she was into Rubik's cubes,

01:09:21.785 --> 01:09:22.805
I learned how to cube too.

01:09:22.986 --> 01:09:25.966
I played around with using Org Mode to help

01:09:26.006 --> 01:09:27.367
me learn cubing.

01:09:27.506 --> 01:09:29.167
She's into Minecraft.

01:09:29.187 --> 01:09:30.287
We play Minecraft together.

01:09:31.528 --> 01:09:37.889
Now she's into Wings of Fire and we read that

01:09:37.908 --> 01:09:38.408
together too.

NOTE Claude and animating my sketches based on a reverse-engineered format

01:09:39.191 --> 01:09:41.052
[Linkarzu]: Okay. Now you mentioned

01:09:41.053 --> 01:09:42.654
that you use Claude sometimes.

01:09:42.796 --> 01:09:44.216
How do you feel about it?

01:09:44.417 --> 01:09:47.301
Have you tried the latest Opus 5.5 one?

01:09:47.682 --> 01:09:49.663
And if you compare it to other models, do you

01:09:49.724 --> 01:09:50.484
feel a difference?

01:09:50.505 --> 01:09:53.408
Do you feel that it's like really smart or it's

01:09:53.448 --> 01:09:55.932
like, nah, what do you think?

01:09:56.753 --> 01:09:58.934
[Sacha]: Well, let me give an example of

01:09:58.974 --> 01:10:00.735
something I was playing around with recently.

01:10:01.095 --> 01:10:03.415
So I mentioned that I use Noteful on my iPad

01:10:03.416 --> 01:10:03.916
to sketch.

01:10:04.416 --> 01:10:05.677
One of the things that I've always been curious

01:10:05.737 --> 01:10:08.058
about is what can I do with the stroke data since

01:10:08.098 --> 01:10:09.218
it's recorded it somewhere.

01:10:10.018 --> 01:10:12.239
I came across another person's repository where

01:10:12.259 --> 01:10:14.520
they had used a large language model, probably

01:10:14.540 --> 01:10:17.542
Claude even, to reverse-engineer the format in

01:10:17.602 --> 01:10:19.541
order to create something

01:10:19.542 --> 01:10:20.883
where you give it your notebook,

01:10:21.343 --> 01:10:22.924
your handwritten notebook, and it will

01:10:23.004 --> 01:10:26.947
generate quizzes and summaries and etc,

01:10:26.948 --> 01:10:28.928
and then put that back in the notebook

01:10:28.929 --> 01:10:30.610
so it looks handwritten,

01:10:30.611 --> 01:10:33.212
so that you can do the quiz

01:10:33.213 --> 01:10:35.153
on the iPad with a pencil and all that.

01:10:35.154 --> 01:10:38.657
The repository had a description of the reverse

01:10:38.717 --> 01:10:41.760
engineered format. So, on my phone, I said,

01:10:41.780 --> 01:10:43.381
can you take a look at this repository

01:10:44.382 --> 01:10:46.183
and see if you can use the reverse-engineered

01:10:46.223 --> 01:10:52.208
format in order to take the notebook and create

01:10:52.268 --> 01:10:55.531
an SVG using centerline strokes instead of fills?

01:10:55.671 --> 01:10:57.933
The way that the export usually works is you

01:10:57.993 --> 01:11:01.076
export a PDF, but when you get it into an SVG

01:11:01.156 --> 01:11:03.898
editor, it's all paths with fills in them.

01:11:04.218 --> 01:11:05.198
But I want strokes

01:11:05.199 --> 01:11:07.320
so that if I want to animate it,

01:11:07.321 --> 01:11:08.821
I can animate it in the direction

01:11:08.822 --> 01:11:09.403
I was drawing,

01:11:10.536 --> 01:11:13.279
instead of the character just appearing.

01:11:13.600 --> 01:11:17.023
It did that. I gave it some files and it

01:11:17.124 --> 01:11:20.067
actually showed me also some videos of it

01:11:20.187 --> 01:11:23.911
animating, so that I could visually verify that it

01:11:23.951 --> 01:11:25.433
was doing what I wanted it to do.

01:11:25.833 --> 01:11:27.814
Theoretically, there are some Python scripts

01:11:27.834 --> 01:11:29.315
that I might try out later on.

01:11:30.295 --> 01:11:32.277
I like the fact that I can do that sort of thing

01:11:32.397 --> 01:11:34.718
from my phone to try things out.

01:11:35.078 --> 01:11:37.779
At the same time, also, it's fine for the things

01:11:37.819 --> 01:11:39.660
that I don't know much about.

01:11:40.061 --> 01:11:41.941
But for Emacs, it's like Prot said,

01:11:41.942 --> 01:11:43.182
this is the fun part.

01:11:43.242 --> 01:11:45.363
For him, it's his video game, right?

01:11:45.804 --> 01:11:47.685
For the stuff that I like to hack,

01:11:48.425 --> 01:11:51.567
I want to actually go do the digging around and

01:11:51.627 --> 01:11:54.409
come across the things that I wouldn't have even

01:11:54.709 --> 01:11:55.770
thought to ask for.

NOTE Differences between models?

01:11:57.852 --> 01:12:00.253
[Linkarzu]: And do you feel like Claude is

01:12:00.774 --> 01:12:03.916
smarter than other models?

01:12:04.336 --> 01:12:08.219
Or you don't feel that too much of a difference?

01:12:09.549 --> 01:12:17.176
[Sacha]: I did more of a comparison back some

01:12:17.216 --> 01:12:19.678
time ago when we were deciding whether to go with

01:12:19.718 --> 01:12:22.140
a Gemini subscription or a Claude subscription

01:12:22.180 --> 01:12:24.182
from my daughter as an incentive for her

01:12:24.762 --> 01:12:27.203
keeping her grades up and doing stuff.

01:12:27.223 --> 01:12:29.484
We trust her to manage it reasonably well.

01:12:29.524 --> 01:12:33.446
We've had these conversations about AI usage and

01:12:34.426 --> 01:12:36.267
she's very proud of the fact that she doesn't use

01:12:36.307 --> 01:12:38.968
it for doing her homework, even though apparently

01:12:39.468 --> 01:12:41.608
in grade 5, some of her classmates

01:12:41.609 --> 01:12:42.708
are already getting reminded

01:12:42.709 --> 01:12:43.388
by their teacher

01:12:43.389 --> 01:12:44.530
not to do that, right?

01:12:45.690 --> 01:12:49.313
Anyway, so we generated some samples of creative

01:12:49.353 --> 01:12:51.814
writing based on the prompts that she had.

01:12:51.815 --> 01:12:53.235
We did a blind comparison,

01:12:53.236 --> 01:12:54.396
and she liked Claude more.

01:12:54.957 --> 01:12:57.218
So that was her reason for doing that.

01:12:57.579 --> 01:13:00.040
For me, in terms of the small generation tasks

01:13:00.100 --> 01:13:04.523
that I trust the AI with or I ask the large

01:13:04.543 --> 01:13:06.925
language model to do, there hasn't been that much

01:13:06.945 --> 01:13:07.445
of a difference.

01:13:07.546 --> 01:13:10.428
I'm sure people doing fancy agentic workflows

01:13:10.468 --> 01:13:12.029
will have different experiences.

NOTE Looking ahead at AI and programming

01:13:12.903 --> 01:13:16.204
[Linkarzu]: Yeah, I've noticed how it, how smart

01:13:16.244 --> 01:13:18.244
it got and that's the reason why I was asking and

01:13:18.304 --> 01:13:20.445
it makes me excited, but it makes me kind of

01:13:20.505 --> 01:13:21.745
worried as well at the same time.

01:13:21.825 --> 01:13:26.347
I don't want to be pessimistic but you know, I

01:13:26.427 --> 01:13:30.288
see how good it got in the past few months and it

01:13:30.368 --> 01:13:30.908
makes me think:

01:13:31.568 --> 01:13:32.850
how better is it going to get?

01:13:32.990 --> 01:13:36.453
Like, what am I going to be needed for then, like,

01:13:36.714 --> 01:13:38.434
in a couple of months, a couple of years,

01:13:38.435 --> 01:13:40.478
you know? So, I don't know.

01:13:40.578 --> 01:13:41.739
I'm in that phase right now.

01:13:41.859 --> 01:13:44.261
It's exciting because I can

01:13:44.281 --> 01:13:45.062
do way more stuff.

01:13:45.202 --> 01:13:48.446
But what's going to be the point then,

01:13:48.646 --> 01:13:49.887
in a couple of years?

01:13:49.947 --> 01:13:50.968
So, I don't know.

01:13:51.089 --> 01:13:53.171
It's just me, baby, thinking about it.

01:13:53.957 --> 01:13:55.559
[Sacha]: There are a lot of people dealing with

01:13:56.000 --> 01:13:58.884
uncertainty and existential crises and I have no

01:13:58.984 --> 01:14:00.866
idea what that future is going to look like.

01:14:02.108 --> 01:14:04.311
Although to be fair,

01:14:04.391 --> 01:14:05.912
people in other industries

01:14:05.913 --> 01:14:09.478
that people in IT have automated away

01:14:10.964 --> 01:14:11.424
have had to deal with

01:14:11.425 --> 01:14:12.967
that kind of existential crisis before.

01:14:13.528 --> 01:14:16.072
So it's our turn now, I guess.

01:14:17.153 --> 01:14:20.217
I'm semi-retired and professionally irrelevant,

01:14:20.218 --> 01:14:21.639
so I can step out here

01:14:21.640 --> 01:14:24.103
and just wait for the dust to settle, right?

01:14:26.666 --> 01:14:28.428
[Linkarzu]: Yeah, you have it figured out

01:14:28.488 --> 01:14:29.229
already, I guess.

01:14:29.489 --> 01:14:32.652
Like the professor, he's 80, he's retired already.

01:14:32.692 --> 01:14:34.873
Like he can just go to Hawaii,

01:14:34.874 --> 01:14:37.997
drink his piña coladas and just enjoy life, you know.

01:14:38.037 --> 01:14:41.219
But we're still working and

01:14:41.220 --> 01:14:43.322
still trying to figure things out.

01:14:43.963 --> 01:14:44.924
Yeah, I don't know.

NOTE AI-generated code, slop PRs and the Lisp Curse in Emacs

01:14:46.865 --> 01:14:50.007
[Sacha]: What's important to me is to help us

01:14:50.087 --> 01:14:52.068
figure these things out together.

01:14:52.148 --> 01:14:54.589
For example, I'm focused on the Emacs community

01:14:54.649 --> 01:14:56.849
and there are big debates about

01:14:56.850 --> 01:14:58.090
"Should we allow it?

01:14:58.190 --> 01:15:01.712
How should we help make sure that package

01:15:01.752 --> 01:15:03.593
maintainers aren't overloaded,

01:15:03.653 --> 01:15:05.514
they're not overwhelmed with a lot of

01:15:05.994 --> 01:15:07.335
slop PR requests?"

01:15:09.496 --> 01:15:11.137
It's great to have all these announcements of new

01:15:11.157 --> 01:15:14.939
packages, but if it's just entirely generated,

01:15:14.979 --> 01:15:18.441
then it tends to fall off and not get maintained.

01:15:19.862 --> 01:15:21.883
In the Emacs community, because it's so easy to

01:15:21.943 --> 01:15:23.884
build something for yourself, we've always had

01:15:23.924 --> 01:15:24.864
this challenge of

01:15:26.545 --> 01:15:28.867
making something that other people can use anyway.

01:15:28.967 --> 01:15:31.789
So there's an essay with the title, I think, The

01:15:31.849 --> 01:15:34.090
Lisp Curse, or if you search for those keywords,

01:15:34.110 --> 01:15:35.371
The Lisp Curse, you'll find it.

01:15:35.811 --> 01:15:39.333
It talks about the fact that because it's so

01:15:39.513 --> 01:15:42.055
powerful, it's hard for people to come together

01:15:42.135 --> 01:15:43.096
and decide on something.

01:15:43.556 --> 01:15:45.457
With large language models and the ease of

01:15:45.477 --> 01:15:48.319
generating code, that's basically the same

01:15:48.359 --> 01:15:49.460
problem scaled up.

01:15:50.215 --> 01:15:53.919
Which is something that we're used to in the

01:15:53.960 --> 01:15:57.404
sense that many times something that's tailored

01:15:57.424 --> 01:16:01.308
to you, that's customized to fit you, it works

01:16:01.348 --> 01:16:03.411
really well for you, but it's hard to translate

01:16:03.431 --> 01:16:04.092
to somebody else.

01:16:04.292 --> 01:16:07.035
Just like if you're prompting a large language

01:16:07.095 --> 01:16:08.437
model to create an app for you,

01:16:08.777 --> 01:16:10.499
it might not necessarily be something that

01:16:10.599 --> 01:16:12.241
somebody else can just pick up and run with.

01:16:12.561 --> 01:16:14.183
It might not necessarily be something that

01:16:14.203 --> 01:16:16.365
you're going to use for six months or a year.

01:16:16.706 --> 01:16:19.127
It might just be something that you use today,

01:16:19.128 --> 01:16:21.470
and it gets your problem solved today,

01:16:21.471 --> 01:16:22.211
and that's okay.

01:16:23.853 --> 01:16:25.974
For me, the fact that people

01:16:25.975 --> 01:16:27.276
are exchanging these ideas

01:16:27.277 --> 01:16:28.517
and they're asking what ifs

01:16:28.518 --> 01:16:30.018
and they can actually get to the point

01:16:30.019 --> 01:16:31.660
where there's code to help them

01:16:31.661 --> 01:16:33.462
test those what ifs

01:16:33.463 --> 01:16:35.305
and help them refine their ideas...

01:16:35.825 --> 01:16:36.946
That part is exciting

01:16:36.947 --> 01:16:37.887
and I'm curious to see

01:16:37.888 --> 01:16:38.748
what people do with it.

01:16:39.269 --> 01:16:41.952
At the same time, the people who want to stay

01:16:42.012 --> 01:16:44.154
with the code that they can read and understand...

01:16:44.274 --> 01:16:45.736
When they read the code

01:16:46.396 --> 01:16:47.437
of other people, even...

01:16:47.557 --> 01:16:48.756
If they read the code of other people,

01:16:48.757 --> 01:16:50.257
which is something I love doing,

01:16:50.258 --> 01:16:51.758
you get the sense of

01:16:51.759 --> 01:16:54.400
what other people are thinking about things.

01:16:54.500 --> 01:16:55.459
The kinds of needs

01:16:55.460 --> 01:16:56.680
that shape this code

01:16:56.681 --> 01:16:57.601
to be what it is.

01:16:58.202 --> 01:17:00.442
The little choices that they make

01:17:00.443 --> 01:17:02.183
in their variable names

01:17:02.184 --> 01:17:04.025
or the way that things fit together.

01:17:04.565 --> 01:17:06.645
I think that's also a wonderful thing

01:17:06.646 --> 01:17:08.707
that I don't want to lose if

01:17:09.307 --> 01:17:13.089
it's just generated really, really long libraries

01:17:13.209 --> 01:17:15.769
that are not doing things as beautifully

01:17:15.770 --> 01:17:17.931
as they could be.

01:17:19.772 --> 01:17:22.513
I'm glad that there are people who try things out

01:17:22.573 --> 01:17:26.855
and also disclose that they've used AI to

01:17:26.875 --> 01:17:27.435
generate things.

01:17:27.855 --> 01:17:29.456
I'm also glad that there are people who are

01:17:29.516 --> 01:17:31.137
manually crafting things that they love.

01:17:31.678 --> 01:17:32.478
[Linkarzu]: You get to know them

01:17:32.479 --> 01:17:33.439
really well, right?

01:17:33.459 --> 01:17:35.119
When you see their code, it's like, oh,

01:17:35.120 --> 01:17:35.901
I know this person.

01:17:35.961 --> 01:17:37.341
I know him better than

01:17:37.342 --> 01:17:38.602
talking to the person, okay?

NOTE Maintainers and large language models

01:17:40.119 --> 01:17:43.061
How do you feel about maintainers on the Emacs

01:17:43.141 --> 01:17:46.624
side of things with all of the code that can be

01:17:46.784 --> 01:17:50.807
easily generated right now and having to deal

01:17:50.927 --> 01:17:51.388
with that?

01:17:51.448 --> 01:17:53.209
I don't know if you maintain any packages or not,

01:17:53.269 --> 01:17:55.631
but I would assume you know that big package

01:17:55.651 --> 01:17:59.094
maintainers must be going through a really

01:17:59.214 --> 01:18:01.616
difficult phase right now, because everyone is

01:18:01.636 --> 01:18:04.818
sending PRs, everyone has great ideas and they

01:18:04.858 --> 01:18:05.679
need to filter,

01:18:06.687 --> 01:18:09.270
go through all of that code and clean it up.

01:18:10.852 --> 01:18:11.913
How do you feel about all that?

01:18:12.013 --> 01:18:14.256
They need to triage all that, right?

01:18:14.396 --> 01:18:18.220
Do you have any thoughts on Emacs maintainers in

01:18:18.380 --> 01:18:19.642
all of this slop?

01:18:20.642 --> 01:18:24.383
[Sacha]: I was a little amused by the exchange in

01:18:24.483 --> 01:18:28.165
Org Mode, where I think John Wiegley was proposing

01:18:28.225 --> 01:18:31.126
something that was partially generated by a large

01:18:31.166 --> 01:18:33.666
language, or actually maybe entirely generated by

01:18:33.686 --> 01:18:34.647
a large language model.

01:18:35.107 --> 01:18:38.028
And it was there as a kind of an example.

01:18:39.228 --> 01:18:42.209
And after some back and forth, Ihor started using

01:18:42.289 --> 01:18:43.670
an LLM to review it.

01:18:46.634 --> 01:18:48.415
We're definitely experimenting with how to deal

01:18:48.455 --> 01:18:51.597
with this kind of thing where the changes might

01:18:51.617 --> 01:18:55.260
be harder to understand because the volume is

01:18:55.340 --> 01:18:59.463
higher, the logic is harder to talk through.

01:19:00.804 --> 01:19:04.887
But not being a maintainer of any very popular

01:19:04.967 --> 01:19:08.869
projects myself, I have no idea the kind of

01:19:08.889 --> 01:19:09.970
things that people are going through.

01:19:11.031 --> 01:19:12.352
I do know that it

01:19:13.852 --> 01:19:15.553
is something that we want to be thoughtful

01:19:15.613 --> 01:19:18.895
about because maintainers are volunteers.

01:19:19.235 --> 01:19:20.475
We don't want people to burn out.

01:19:20.535 --> 01:19:22.756
We also don't want contributors to burn out.

01:19:23.257 --> 01:19:27.799
We want people to be able to experiment and

01:19:27.859 --> 01:19:29.959
communicate thoughtfully and kindly.

01:19:31.740 --> 01:19:32.481
[Linkarzu]: Okay.

01:19:32.801 --> 01:19:35.202
Now, two more questions that I have for you and

01:19:35.242 --> 01:19:36.522
I'll let you go.

01:19:37.043 --> 01:19:38.922
The first one that I have is...

01:19:38.923 --> 01:19:39.684
Where is this thing?

01:19:39.744 --> 01:19:40.144
Hold on.

01:19:43.037 --> 01:19:43.918
Where is this thing?

NOTE Thumbnails

01:19:44.378 --> 01:19:49.701
What did you think about the thumbnail that we

01:19:49.721 --> 01:19:50.382
came up with?

01:19:51.463 --> 01:19:53.264
[Sacha]: You know, some people in the community

01:19:53.284 --> 01:19:55.846
were like, "Uh, what's up with that thumbnail?"

01:19:58.067 --> 01:19:59.468
Linkarzu likes to have fun with his

01:19:59.548 --> 01:20:00.669
AI-generated thumbnails.

01:20:01.289 --> 01:20:04.411
But my daughter would like to say that she's

01:20:04.471 --> 01:20:06.733
never seen me do the [eyebrow] thing.

01:20:07.703 --> 01:20:10.625
Also, she feels that the AI makes my eyes too big

01:20:11.466 --> 01:20:13.126
and she's not used to seeing

01:20:13.127 --> 01:20:16.569
my braid on that side.

01:20:17.129 --> 01:20:18.490
[Linkarzu]: Okay. That's good.

01:20:18.630 --> 01:20:20.472
[Sacha]: So you got like a zero out of five.

01:20:23.566 --> 01:20:24.987
[Linkarzu]: A zero out of five,

01:20:24.988 --> 01:20:27.156
and it's one of my favourite ones,

01:20:27.157 --> 01:20:28.407
Sacha, come on.

01:20:28.408 --> 01:20:31.076
Like, man, I don't know.

01:20:31.040 --> 01:20:33.400
[Sacha]: I'm not sure I've ever made that face.

01:20:33.400 --> 01:20:35.720
I tried a couple of times afterwards,

01:20:35.720 --> 01:20:37.480
but I think I just looked very confused.

01:20:38.940 --> 01:20:40.640
[Linkarzu]: What are these guys doing?

01:20:40.819 --> 01:20:44.321
Yeah, my channel is really random.

01:20:44.401 --> 01:20:48.044
I don't know why people still follow it, but AI

01:20:48.144 --> 01:20:50.025
helps me with ideas that I have.

01:20:50.065 --> 01:20:54.167
I had this idea in mind and I was like...

01:20:54.168 --> 01:20:55.308
I can bring those.

01:20:56.369 --> 01:20:58.651
Okay, that's enough with the thumbnail.

01:20:58.851 --> 01:21:03.374
Now, the final thing before I let you go is what

01:21:03.454 --> 01:21:05.375
would you recommend someone

01:21:07.070 --> 01:21:09.293
new into Emacs?

01:21:09.653 --> 01:21:10.894
What would you tell them?

01:21:10.975 --> 01:21:12.216
Hey, go and learn this.

01:21:12.276 --> 01:21:14.098
Go and read my blog post.

01:21:14.398 --> 01:21:15.039
What do you think?

01:21:15.540 --> 01:21:18.783
Someone just watching this video not knowing what

01:21:18.963 --> 01:21:24.189
Emacs is but they were captivated by the wild

01:21:24.249 --> 01:21:25.530
things that you do in Emacs

01:21:25.531 --> 01:21:26.292
and they're going to be, like,

01:21:26.812 --> 01:21:28.354
I want to be that Chad.

01:21:28.534 --> 01:21:31.778
I want to be the Giga Stacey.

01:21:31.798 --> 01:21:34.620
Because it's Giga Chad and Giga Stacey

01:21:34.621 --> 01:21:36.804
I think is the female version of it.

01:21:36.864 --> 01:21:38.246
So what would you say to them?

NOTE Advice for Emacs beginners: connect with people

01:21:39.615 --> 01:21:42.556
[Sacha]: I would say go connect with people.

01:21:42.656 --> 01:21:44.897
Now, it's very difficult sometimes to find an

01:21:44.997 --> 01:21:47.718
Emacs user in your physical location, but there

01:21:47.778 --> 01:21:50.018
are meetups and there's Reddit and there's like,

01:21:50.038 --> 01:21:52.319
you know, there's EmacsConf and there are

01:21:52.339 --> 01:21:54.920
virtual meetups, as I mentioned, there are

01:21:54.940 --> 01:21:57.080
mailing lists, there's IRC channels.

01:21:57.601 --> 01:22:00.221
It's because Emacs can be really overwhelming if

01:22:00.241 --> 01:22:01.642
you're learning it by yourself.

01:22:02.422 --> 01:22:04.143
There are all sorts of things

01:22:04.144 --> 01:22:05.364
that you might not even know

01:22:05.365 --> 01:22:07.826
to ask for or explore,

01:22:07.827 --> 01:22:10.529
because you don't even know it's possible.

01:22:11.230 --> 01:22:15.133
For me, learning Emacs in the community has

01:22:15.213 --> 01:22:16.754
been really helpful.

01:22:16.854 --> 01:22:18.516
I feel like I've barely scratched the surface,

01:22:18.556 --> 01:22:20.517
because I'm always being inspired by other people

01:22:21.018 --> 01:22:22.738
who are sharing the cool projects

01:22:22.739 --> 01:22:23.539
that they're working on

01:22:23.540 --> 01:22:25.340
or the ideas that they're building

01:22:25.341 --> 01:22:26.723
by themselves or with assistance.

01:22:27.263 --> 01:22:29.645
Definitely, large language models can help

01:22:29.685 --> 01:22:32.306
with some of it, but it's still limited to what

01:22:32.326 --> 01:22:32.967
you can ask.

01:22:33.527 --> 01:22:38.050
So if you can hook up with the blog posts or with

01:22:38.150 --> 01:22:40.111
the IRC channels and all these other ways to

01:22:40.331 --> 01:22:42.533
connect with the Emacs community, I think that

01:22:42.593 --> 01:22:45.074
makes Emacs learning a lot more fun and a lot

01:22:45.094 --> 01:22:45.735
more effective.

01:22:46.535 --> 01:22:47.247
As you mentioned,

01:22:47.248 --> 01:22:48.836
Prot does have a coaching service,

01:22:48.837 --> 01:22:50.638
so that might be an excellent way to start.

01:22:51.439 --> 01:22:53.620
If your budget doesn't extend to €10 an hour,

01:22:53.740 --> 01:22:57.763
then you can always try IRC or other places

01:22:57.803 --> 01:22:58.424
through the meetups.

01:22:58.464 --> 01:23:00.425
People often bring their questions there as well

01:23:01.186 --> 01:23:03.507
and learn from the kinds of cool things that

01:23:03.527 --> 01:23:04.208
people are sharing.

01:23:05.288 --> 01:23:06.790
[Linkarzu]: Okay, amazing, Sacha.

01:23:06.810 --> 01:23:08.231
[Sacha]: Which actually brings me to stuff that I

01:23:08.271 --> 01:23:11.132
want to pick your brain about

01:23:11.133 --> 01:23:13.034
before I let you go either.

NOTE The Neovim community could use a blog aggregator like Planet Emacslife

01:23:16.963 --> 01:23:19.604
The Neovim community does YouTube really well,

01:23:20.425 --> 01:23:21.766
which is cool.

01:23:22.146 --> 01:23:26.649
But there's one Reddit post asking, hey, is there

01:23:26.669 --> 01:23:28.691
a Planet Emacslife equivalent for Vim?

01:23:28.931 --> 01:23:31.673
Basically an aggregator that brings together Vim

01:23:31.693 --> 01:23:35.516
blogs or what's going on in this conference stuff.

01:23:35.816 --> 01:23:38.498
I would like the Neovim community to be more

01:23:38.578 --> 01:23:39.959
vibrant and better connected.

01:23:40.980 --> 01:23:42.461
I mean, not that you really need that help.

01:23:42.481 --> 01:23:44.042
You've got way more users than the Emacs

01:23:44.062 --> 01:23:44.923
community and that's fine.

01:23:45.203 --> 01:23:47.645
But it'd be really interesting to see people

01:23:47.665 --> 01:23:51.228
sharing blog posts and sharing cool ideas.

01:23:51.288 --> 01:23:54.310
There's r/neovim, but you know, there's got to

01:23:54.350 --> 01:23:56.592
be so much more that people can share with each

01:23:56.672 --> 01:23:59.474
other and bounce ideas off each other and have

01:23:59.495 --> 01:24:00.976
those kinds of conversations about.

01:24:01.860 --> 01:24:03.181
[Linkarzu]: You have a really good point.

NOTE Why Emacs News

01:24:03.421 --> 01:24:05.102
This is why you do your blog posts.

01:24:05.362 --> 01:24:06.082
Is that right?

01:24:06.242 --> 01:24:09.124
Like you try to aggregate all of the different

01:24:09.504 --> 01:24:12.306
Emacs-related news, videos, articles, whatever,

01:24:12.446 --> 01:24:13.985
anything Emacs-related,

01:24:13.986 --> 01:24:16.108
you put it in your blog post.

01:24:16.348 --> 01:24:16.708
[Sacha]: Yeah, it's...

01:24:17.008 --> 01:24:18.969
It's kind of like having a water cooler, right,

01:24:19.289 --> 01:24:19.909
if you have a place

01:24:19.910 --> 01:24:21.430
where you can bump into other people.

01:24:21.851 --> 01:24:23.832
And that Emacs News there, which is the second

01:24:23.892 --> 01:24:27.654
link on this page title, that takes me just about

01:24:27.774 --> 01:24:30.414
an hour or two to put together,

01:24:30.415 --> 01:24:32.355
depending on how distracted I am

01:24:32.356 --> 01:24:33.476
by all the cool ideas

01:24:33.477 --> 01:24:34.297
that I come across.

01:24:34.737 --> 01:24:36.278
I've done this on livestream so people can

01:24:36.318 --> 01:24:39.280
laugh at my "Ooh, shiny!".

01:24:41.701 --> 01:24:45.062
It's built on top of a fair bit of automation.

01:24:45.102 --> 01:24:47.604
I just upvote links on Reddit.

01:24:47.844 --> 01:24:49.565
The calendar comes in automatically.

01:24:49.665 --> 01:24:51.806
The stuff on the blog posts comes in automatically.

01:24:52.186 --> 01:24:53.947
I just categorize things so that people who are

01:24:54.007 --> 01:24:56.268
interested in a particular subject area don't

01:24:56.308 --> 01:24:58.309
have to wade through 60 to 70 links.

01:24:58.389 --> 01:25:00.410
They can focus on one category if they want to.

01:25:00.930 --> 01:25:02.831
But it should not be impossible to do something

01:25:02.871 --> 01:25:04.072
like this for Vim.

01:25:04.513 --> 01:25:08.475
I'm sure that maybe, especially with org.nvim

01:25:08.816 --> 01:25:09.635
and other things,

01:25:09.636 --> 01:25:10.896
maybe people will post more notes,

01:25:10.897 --> 01:25:12.678
because literate programming is an

01:25:12.898 --> 01:25:15.540
excellent way to make things clear to yourself

01:25:15.620 --> 01:25:16.381
and to other people.

NOTE Neovim and Emacs community cultures

01:25:16.641 --> 01:25:17.021
[Linkarzu]: Hate?

01:25:17.421 --> 01:25:18.842
It's like, I don't know, there's

01:25:19.863 --> 01:25:22.806
a lot of crazy people on the Neovim subreddit.

01:25:23.046 --> 01:25:26.629
I don't know if that's a particularity of

01:25:26.870 --> 01:25:28.491
Neovim users.

01:25:28.691 --> 01:25:31.274
We're all toxic and we just hate each other.

01:25:32.115 --> 01:25:33.436
[Sacha]: Yeah, maybe you should just come over to

01:25:33.456 --> 01:25:35.137
the Emacs community. We have hot chocolate.

01:25:35.838 --> 01:25:37.939
[Linkarzu]: Now, I have gone to the

01:25:37.940 --> 01:25:39.442
Emacs side of things.

01:25:39.922 --> 01:25:43.306
Apart from frazzor749, I think he's an Emacs user

01:25:43.326 --> 01:25:45.228
because he's abusive.

01:25:46.790 --> 01:25:48.271
That's in Spanish.

01:25:48.311 --> 01:25:50.954
I don't know how to translate it.

01:25:51.034 --> 01:25:51.555
He's mean.

01:25:51.935 --> 01:25:52.676
He's mean to me.

01:25:52.956 --> 01:25:55.058
But if you go to the

01:25:55.939 --> 01:25:58.882
Emacs subreddit, it's like rainbows and

01:25:58.922 --> 01:26:01.044
butterflies. Everyone's like...

01:26:01.404 --> 01:26:04.145
There's not a lot of hate

01:26:04.146 --> 01:26:06.848
and it's something that...

01:26:06.849 --> 01:26:10.191
I always wonder why does that happen?

01:26:10.472 --> 01:26:12.793
Like, it's not moderators,

01:26:12.794 --> 01:26:13.514
it's just people.

01:26:13.815 --> 01:26:15.516
Is it just because it's old people?

01:26:17.998 --> 01:26:20.442
Like the professor, he doesn't want to fight

01:26:20.482 --> 01:26:20.882
anymore.

01:26:20.942 --> 01:26:21.663
He's old enough.

01:26:21.724 --> 01:26:23.506
He's just, he retired already.

01:26:23.566 --> 01:26:26.610
He's just ready to pass to the next life.

01:26:30.420 --> 01:26:31.817
[Sacha]: Hypothesis number two,

01:26:31.818 --> 01:26:33.420
maybe your editor makes you grumpy.

01:26:36.356 --> 01:26:38.257
[Linkarzu]: Right? It could be.

01:26:38.517 --> 01:26:40.999
[Sacha]: I don't know.

01:26:41.179 --> 01:26:43.100
When I talk to people, they say,

01:26:43.120 --> 01:26:45.421
"Working on Emacs, tweaking my Emacs is fun.

01:26:45.561 --> 01:26:46.502
It's relaxing.

01:26:46.642 --> 01:26:51.405
It's what I do because I enjoy doing it."

01:26:54.086 --> 01:26:54.806
I don't know.

01:26:55.307 --> 01:26:57.788
I think for Emacs, because we're so used to

01:27:00.159 --> 01:27:02.703
feeling like our customizations are actually very

01:27:02.723 --> 01:27:04.885
personal... They're us figuring out

01:27:04.886 --> 01:27:05.786
how to build up tools

01:27:05.787 --> 01:27:07.890
so they support us better.

01:27:07.910 --> 01:27:10.233
We have no idea whether it'll work for

01:27:10.253 --> 01:27:11.934
somebody else, but if it's useful,

01:27:11.935 --> 01:27:13.417
here, have it. It's a gift.

01:27:15.480 --> 01:27:16.920
For me, the feeling of

01:27:16.921 --> 01:27:19.481
being in the Emacs community is,

01:27:19.482 --> 01:27:21.984
it just feels like we're sharing

01:27:22.084 --> 01:27:23.544
all these things that we've figured out

01:27:23.545 --> 01:27:24.724
for ourselves

01:27:24.725 --> 01:27:25.445
in the hopes that

01:27:25.446 --> 01:27:26.846
it might help somebody else.

01:27:27.487 --> 01:27:30.447
And it pays off often enough that...

01:27:30.448 --> 01:27:31.468
I might share something

01:27:31.469 --> 01:27:33.029
and then several years later

01:27:33.030 --> 01:27:34.671
someone will come across the same blog post

01:27:34.711 --> 01:27:37.191
and say, oh yeah, I took that idea,

01:27:37.192 --> 01:27:38.032
I built on top of it,

01:27:38.033 --> 01:27:39.312
and now you can do mind maps in Emacs,

01:27:39.313 --> 01:27:41.495
because yes, why not?

01:27:43.056 --> 01:27:44.578
I was like, wow, that's amazing.

01:27:45.099 --> 01:27:46.782
So for us, there's always been a community of

01:27:46.882 --> 01:27:52.249
sharing, and knowing that there's no guarantee

01:27:52.289 --> 01:27:54.192
it'll work for anyone else, but it's amazing if

01:27:54.232 --> 01:27:54.552
it does.

01:27:55.179 --> 01:27:55.479
[Linkarzu]: Uh-huh.

01:27:55.959 --> 01:27:59.341
Or is there a cult and people are all connected

01:27:59.441 --> 01:28:01.342
and when someone is misbehaving, they get

01:28:01.422 --> 01:28:02.283
punished publicly?

01:28:02.503 --> 01:28:05.023
Like Prot in the thumbnail, it's like,

01:28:05.024 --> 01:28:06.685
it's time you get punished, my boy.

01:28:06.985 --> 01:28:09.967
[Sacha]: I was trying to find that bashbunni

01:28:10.147 --> 01:28:13.849
video clip where she says, something

01:28:13.869 --> 01:28:15.730
along the lines of, "It's not a cult, but have you

01:28:15.950 --> 01:28:17.511
heard about our Lord and Savior Org Mode?"

01:28:23.394 --> 01:28:27.217
It's fun. I've met some of the nicest people

01:28:27.317 --> 01:28:29.318
in the Emacs community. I love the fact that

01:28:29.358 --> 01:28:32.060
this little corner of the internet is about

01:28:32.200 --> 01:28:34.901
sharing what works for you and imagining what

01:28:34.921 --> 01:28:37.623
could be even better and being inspired by what

01:28:37.683 --> 01:28:39.044
other people are doing with their lives.

01:28:39.564 --> 01:28:40.945
So that part is really cool.

01:28:41.545 --> 01:28:44.047
I hope that you have or can develop something

01:28:44.067 --> 01:28:45.588
like that for Neovim as well.

01:28:46.228 --> 01:28:49.831
I think that, you know, you've definitely got the

01:28:49.931 --> 01:28:51.532
videos and the reacts going.

01:28:52.312 --> 01:28:54.453
It'll be interesting to see if blog posts could

01:28:54.473 --> 01:28:55.574
make things more searchable.

01:28:56.174 --> 01:28:58.576
And for you, you have a lot of text that comes

01:28:58.616 --> 01:28:59.336
out of your videos.

01:28:59.356 --> 01:29:00.977
You could certainly get started with that.

01:29:01.338 --> 01:29:03.999
For us, we also have code.

01:29:05.240 --> 01:29:07.182
Because it's a lot about personalization and

01:29:07.222 --> 01:29:08.383
configuration, right?

01:29:08.984 --> 01:29:11.246
So we have this long tradition of literate

01:29:11.266 --> 01:29:13.348
programming and sharing the snippets of your

01:29:14.029 --> 01:29:16.471
config with an explanation in it.

01:29:17.212 --> 01:29:20.375
I'm curious to see what that could happen,

01:29:21.096 --> 01:29:23.158
what that could do with the Vim community as well.

01:29:23.478 --> 01:29:24.759
[Linkarzu]: Yeah, you have a point.

NOTE
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-01-29-24-985.jpg
#+SCREENSHOT_TIME: 01:29:24.985

01:29:24.959 --> 01:29:29.223
There's this dotfyle thing that came up like some

01:29:29.243 --> 01:29:31.184
years ago, but I think it's just mainly an

01:29:31.404 --> 01:29:34.787
automated thing that pulls up GitHub repos.

01:29:34.927 --> 01:29:38.950
I don't think it has like an actual person that

01:29:38.970 --> 01:29:42.313
is behind it, pulling up news and aggregating all

01:29:42.333 --> 01:29:42.613
the stuff.

01:29:42.873 --> 01:29:45.155
There needs to be a human that does this, that

01:29:45.395 --> 01:29:48.177
adds the touch and adds the love that you do on

01:29:48.197 --> 01:29:49.098
the Emacs side of things.

01:29:49.678 --> 01:29:51.199
I'm not willing to take that job.

01:29:51.499 --> 01:29:53.840
I don't know if someone on the Neovim community

01:29:54.121 --> 01:30:01.044
is willing to do it, because, yeah.

NOTE Not just about plugins, but also workflows and stories

01:30:01.204 --> 01:30:03.726
[Sacha]: It's not just about the plugins or the

01:30:03.746 --> 01:30:04.266
code, right?

01:30:04.366 --> 01:30:06.847
For me, what's really interesting are the

01:30:07.408 --> 01:30:09.369
workflows that people have around it.

01:30:09.569 --> 01:30:11.430
You can look at someone's keyboard shortcuts, but

01:30:11.490 --> 01:30:13.951
it's when they tell a story of how they're doing

01:30:14.011 --> 01:30:16.153
it or when they show a video, but then you're

01:30:16.173 --> 01:30:17.733
like, wait, wait, back up a little bit.

01:30:17.773 --> 01:30:20.875
How did you do that thing, right?

01:30:20.995 --> 01:30:22.015
A lot of the times,

01:30:22.016 --> 01:30:24.156
we learn about our tools best

01:30:24.157 --> 01:30:25.758
when we're looking over the shoulder of

01:30:25.818 --> 01:30:27.498
somebody else who's using it,

01:30:27.499 --> 01:30:28.899
and we're seeing the kinds of things

01:30:28.900 --> 01:30:32.421
that they might completely forget to mention

01:30:32.422 --> 01:30:33.622
because to them,

01:30:33.623 --> 01:30:34.964
they already take it for granted.

01:30:35.684 --> 01:30:40.047
I love that kind of sharing that people have

01:30:40.247 --> 01:30:43.388
in meetups, at conferences, in video comments,

01:30:43.389 --> 01:30:46.350
in blog posts, where we're just sharing,

01:30:46.351 --> 01:30:47.771
okay, this is what I've figured out

01:30:47.772 --> 01:30:49.793
about how to use things.

01:30:50.094 --> 01:30:52.655
If you have any other questions... Often it's

01:30:52.675 --> 01:30:54.056
like, what font is that?

01:30:55.517 --> 01:30:56.378
[Linkarzu]: What font is that?

01:30:56.398 --> 01:30:57.278
That's a common one.

01:30:57.298 --> 01:30:59.099
What color scheme is that?

01:30:59.139 --> 01:30:59.720
[Sacha]: People share.

01:31:00.320 --> 01:31:02.342
[Linkarzu]: Okay. All right, Sacha. Amazing.

NOTE Planning an Emacs and Neovim panel with Prot

01:31:02.382 --> 01:31:05.884
Do you have any other topics before we wrap it up

01:31:05.984 --> 01:31:07.845
or something else that you would like to discuss?

01:31:07.865 --> 01:31:09.726
Because I've been asking all the questions and

01:31:10.327 --> 01:31:12.168
you can ask whatever you want as well.

01:31:14.795 --> 01:31:17.598
[Sacha]: I'm already thinking of several

01:31:17.678 --> 01:31:22.103
follow-up things that I want to explore before

01:31:22.303 --> 01:31:23.184
our next conversation.

01:31:23.204 --> 01:31:24.705
We'll probably have another conversation

01:31:24.706 --> 01:31:25.246
in the future.

01:31:25.667 --> 01:31:26.728
[Linkarzu]: With Prot, right?

01:31:26.828 --> 01:31:28.210
We can have a conversation with Prot.

01:31:28.490 --> 01:31:29.651
I was thinking as well.

01:31:30.492 --> 01:31:32.713
about Neovim versus Emacs.

01:31:32.733 --> 01:31:34.533
Because I did that video,

01:31:34.534 --> 01:31:36.095
I think it was over a year ago.

01:31:36.475 --> 01:31:38.036
There were four guests, right?

01:31:38.496 --> 01:31:40.617
The people in the comments were like, but you

01:31:40.657 --> 01:31:41.938
should have invited Prot.

01:31:42.178 --> 01:31:43.618
You should have invited Prot

01:31:43.619 --> 01:31:45.980
or the SystemCrafters guy, you know?

01:31:46.220 --> 01:31:47.441
Now I can have eight guests.

01:31:47.501 --> 01:31:50.282
Imagine four on the Emacs side of things and four

01:31:50.383 --> 01:31:51.543
on the Neovim side of things.

01:31:51.563 --> 01:31:53.164
The powerful ones, you know?

01:31:53.764 --> 01:31:54.305
That would be...

01:31:55.225 --> 01:31:57.725
[Sacha]: It's not even really Neovim versus Emacs

01:31:57.786 --> 01:31:58.906
who's got the best tool.

01:31:59.346 --> 01:32:01.645
I think it's more like, okay,

01:32:01.646 --> 01:32:02.826
you've got Neovim stuff.

01:32:02.846 --> 01:32:03.347
That's cool.

01:32:03.387 --> 01:32:04.587
And you've got Emacs stuff.

01:32:04.787 --> 01:32:05.227
That's cool.

01:32:05.327 --> 01:32:08.788
How can we inspire each other?

01:32:09.308 --> 01:32:11.348
How can we be like, oh, that's a great idea.

01:32:11.368 --> 01:32:12.408
I've got something similar.

01:32:12.448 --> 01:32:13.388
That's a little like this.

01:32:13.688 --> 01:32:14.748
I'm going to yoink your idea

01:32:14.749 --> 01:32:15.889
and smoosh it into this one.

01:32:16.289 --> 01:32:18.649
Then we're going to see what we can make this.

01:32:19.210 --> 01:32:20.749
I think that kind of back and forth

01:32:20.750 --> 01:32:21.590
would be amazing.

01:32:21.950 --> 01:32:24.250
Even in preparation for this conversation,

01:32:24.251 --> 01:32:25.850
I've had a lot of fun tinkering with

01:32:25.851 --> 01:32:31.151
my video editing workflow, with the conversations,

01:32:31.152 --> 01:32:32.391
the live transcriptions,

01:32:32.392 --> 01:32:35.093
the animation of SVGs in Emacs,

01:32:35.333 --> 01:32:37.893
the reordering of group elements inside an SVG

01:32:37.894 --> 01:32:41.394
so that I don't have to use Inkscape

01:32:41.395 --> 01:32:42.395
to manually order things,

01:32:42.475 --> 01:32:46.796
I can just use Org Mode and shuffle items around

01:32:46.836 --> 01:32:50.477
in the list in order to get my SVG to animate in

01:32:50.497 --> 01:32:51.577
the order that I wanted to.

01:32:53.598 --> 01:32:56.439
Oh, and I have this thing now also now where I

01:32:56.479 --> 01:32:58.620
can give it a YouTube URL and it opens a

01:32:58.640 --> 01:33:01.921
transcript for that video, so that I can clip

01:33:02.001 --> 01:33:05.963
things out of your most recent stuff directly

01:33:06.003 --> 01:33:07.503
from your YouTube channel without having to

01:33:07.523 --> 01:33:09.324
download it or run the transcription myself

01:33:09.344 --> 01:33:11.905
because YouTube has auto subs and chapters,

01:33:12.005 --> 01:33:13.386
thank you.

01:33:13.586 --> 01:33:16.807
So yeah, I've had a lot of fun preparing for this

01:33:16.867 --> 01:33:18.108
conversation and I think

01:33:18.808 --> 01:33:19.828
as we get more people

01:33:19.829 --> 01:33:22.070
talking and exchanging ideas,

01:33:22.071 --> 01:33:23.912
we'll have even more ideas to explore.

01:33:24.353 --> 01:33:26.534
[Linkarzu]: Yeah. I always do the versus thing,

01:33:26.535 --> 01:33:27.375
but it's not a versus.

01:33:27.415 --> 01:33:30.137
If you go and take a look at that old video,

01:33:30.558 --> 01:33:32.518
there was not like a debate, like,

01:33:32.519 --> 01:33:33.800
my tool is better than yours.

01:33:33.881 --> 01:33:35.962
It was friendly.

01:33:36.283 --> 01:33:38.544
It was a pretty friendly conversation.

01:33:39.405 --> 01:33:42.186
[Sacha]: I want Neovim to thrive and all the

01:33:42.226 --> 01:33:44.727
other Vim variants and all the other editors that

01:33:44.747 --> 01:33:46.186
people come up with,

01:33:46.187 --> 01:33:47.206
because people are always

01:33:47.207 --> 01:33:48.907
choosing these tools for their reasons

01:33:48.908 --> 01:33:50.468
and they're perfectly wonderful reasons.

01:33:50.908 --> 01:33:53.048
I want to see what extent

01:33:53.049 --> 01:33:53.969
we can take it, right?

01:33:54.449 --> 01:33:55.870
How awesome can it get?

01:33:56.510 --> 01:33:57.709
And then of course,

01:33:57.710 --> 01:33:59.030
if there's a really awesome idea,

01:33:59.031 --> 01:33:59.950
chances are someone in Emacs

01:33:59.951 --> 01:34:01.490
is going to be like, oh yeah,

01:34:01.491 --> 01:34:03.632
I can do that in about 15 lines of Emacs Lisp.

01:34:04.232 --> 01:34:09.657
[Linkarzu]: Oh yeah. Spicy takes there.

01:34:10.818 --> 01:34:12.119
[Sacha]: Who knows, right?

01:34:12.559 --> 01:34:15.721
Sometimes it might be that we'll call out

01:34:15.722 --> 01:34:16.183
to something.

01:34:16.543 --> 01:34:19.085
Bastien Guerry was telling me, and I'm going to see

01:34:19.465 --> 01:34:21.867
if I remember this correctly, because he was

01:34:21.887 --> 01:34:23.269
telling me this anecdote in French,

01:34:24.438 --> 01:34:26.119
which I only partially understand.

01:34:26.159 --> 01:34:28.820
He was telling me that he was at a TupperVim

01:34:29.240 --> 01:34:30.180
community meeting.

01:34:31.421 --> 01:34:33.901
They were sharing Vim tips and he was like,

01:34:33.981 --> 01:34:35.142
"Oh, that's a really nice table.

01:34:35.222 --> 01:34:36.982
How did you get it to display so nicely?"

01:34:37.503 --> 01:34:39.463
And the guy hemmed and hawed and eventually

01:34:39.523 --> 01:34:42.144
admitted that he had actually shelled out to

01:34:42.244 --> 01:34:45.786
Emacs to run the code and evaluate it and then

01:34:45.806 --> 01:34:48.627
get the layout back and then put

01:34:48.667 --> 01:34:49.467
it in Vim.

01:34:50.367 --> 01:34:55.050
It's totally possible to borrow ideas and use

01:34:55.070 --> 01:34:57.131
them back and forth, even to the extent of

01:34:57.632 --> 01:35:00.893
calling the other plugin in order to just get the

01:35:00.934 --> 01:35:01.414
stuff done.

01:35:01.814 --> 01:35:03.095
[Linkarzu]: Yeah, I see that a lot.

01:35:03.375 --> 01:35:05.036
People are switching between two.

01:35:05.316 --> 01:35:06.377
Like, there's some

01:35:07.477 --> 01:35:10.299
people that switch to Helix for some reason.

01:35:10.319 --> 01:35:11.639
I don't know if you've heard about Helix.

01:35:12.740 --> 01:35:13.380
It's fine, whatever.

01:35:13.420 --> 01:35:16.402
But I've seen that crossover a lot.

01:35:16.582 --> 01:35:18.902
People switch from Neovim to Emacs,

01:35:18.903 --> 01:35:22.105
then they go from Emacs to Neovim and they're like this.

01:35:22.325 --> 01:35:24.966
That cross-pollination, is that how

01:35:25.006 --> 01:35:25.446
you say it?

01:35:25.686 --> 01:35:28.788
Helps both tools, right?

01:35:29.713 --> 01:35:31.234
[Sacha]: And it's plain text and you can ship

01:35:31.254 --> 01:35:32.094
things back and forth.

01:35:32.655 --> 01:35:36.196
If you are a large-language-model-using person,

01:35:36.197 --> 01:35:37.898
you can just use AI to translate code

01:35:37.918 --> 01:35:39.899
back and forth to... Who knows, we'll see.

01:35:40.399 --> 01:35:45.783
If you want to use emacsclient or an

01:35:45.903 --> 01:35:48.004
embedded process or whatever else, that's also

01:35:48.044 --> 01:35:48.604
totally cool.

01:35:48.644 --> 01:35:51.086
Whatever gets a job done and whatever lets you

01:35:51.126 --> 01:35:52.687
explore that idea, right?

01:35:53.817 --> 01:35:54.378
[Linkarzu]: Yep, yep, yep.

01:35:54.959 --> 01:35:56.240
One final thought that I have.

01:35:56.520 --> 01:36:00.024
What do you think about editors and terminals?

01:36:00.404 --> 01:36:04.108
Because people say like, okay, maybe I live in a

01:36:04.148 --> 01:36:05.670
bubble, you know, but on Twitter...

01:36:06.717 --> 01:36:07.937
Yeah, I think we live in a bubble.

01:36:08.918 --> 01:36:10.358
And that's what I get surrounded with.

NOTE AI agents versus Emacs as an interface toolkit

01:36:10.998 --> 01:36:14.260
But people is like, why do you still use a

01:36:14.280 --> 01:36:15.120
terminal, right?

01:36:15.640 --> 01:36:17.281
Now it's all about agents.

01:36:18.101 --> 01:36:19.520
Why do you use an editor

01:36:19.521 --> 01:36:20.762
in this day and age, right?

01:36:20.782 --> 01:36:23.002
There's a lot of people that actually don't use

01:36:23.043 --> 01:36:25.003
them because they are full agentic now.

01:36:25.383 --> 01:36:26.004
What do you think

01:36:29.495 --> 01:36:34.020
the future looks like for Emacs and Neovim and

01:36:34.040 --> 01:36:35.781
terminals?

01:36:35.782 --> 01:36:37.444
Neovim needs a terminal, right?

01:36:37.484 --> 01:36:40.607
So it's like that's what gives it

01:36:40.608 --> 01:36:42.450
superpowers as well.

01:36:42.550 --> 01:36:43.952
Do you have any thoughts you want to share on

01:36:43.972 --> 01:36:44.152
that?

01:36:45.857 --> 01:36:48.819
[Sacha]: I like the way that Emacs gives me kind

01:36:48.859 --> 01:36:52.482
of an interface toolkit if I want to edit videos

01:36:52.562 --> 01:36:56.285
as text or if I want to look at my agenda or if I

01:36:56.365 --> 01:36:59.987
want to make a buffer with buttons that I can

01:37:00.027 --> 01:37:00.508
click on.

01:37:01.749 --> 01:37:03.630
It gives me a bit more of that richness and

01:37:03.690 --> 01:37:06.552
flexibility that going with either a

01:37:06.612 --> 01:37:12.917
conversational chat agent interface doesn't, or I

01:37:12.957 --> 01:37:16.539
would have to have the agent generate me a whole

01:37:16.599 --> 01:37:18.681
interface and then I would have to tell it, okay,

01:37:18.701 --> 01:37:21.723
but I want it to behave this way, and then I

01:37:21.763 --> 01:37:24.225
wouldn't be able to integrate it as easily with

01:37:24.245 --> 01:37:25.306
the rest of my stuff.

01:37:26.106 --> 01:37:28.348
I don't think, for me at least, that agents

01:37:28.388 --> 01:37:29.309
are quite there yet.

01:37:29.869 --> 01:37:30.770
I'll give you an example.

NOTE Example: managing the schedule for EmacsConf

01:37:32.111 --> 01:37:34.713
So I'm organizing EmacsConf, right, and I need

01:37:34.733 --> 01:37:37.495
to keep track of the schedules that I've emailed

01:37:37.535 --> 01:37:40.837
speakers because that way I can tell if I've

01:37:40.857 --> 01:37:44.120
changed the schedule whether I need to email them

01:37:44.160 --> 01:37:45.681
again with a new schedule, right?

01:37:45.921 --> 01:37:46.382
Makes sense.

01:37:47.142 --> 01:37:49.965
Because I also do my email within Emacs, I

01:37:50.005 --> 01:37:52.767
can set it up so that when I send the email, not

01:37:52.827 --> 01:37:54.589
when I've composed the email, because if I've

01:37:54.629 --> 01:37:56.871
composed the email using my mail merge but then I

01:37:56.891 --> 01:37:58.533
get distracted and I change my mind, it doesn't

01:37:58.613 --> 01:37:59.614
actually get sent yet, right?

01:38:00.174 --> 01:38:02.837
Only after I send the email will it go and update

01:38:02.877 --> 01:38:06.240
that specific talk's details in my Org Mode file

01:38:06.300 --> 01:38:08.202
with all of my conference talk information,

01:38:08.442 --> 01:38:08.882
naturally.

01:38:10.184 --> 01:38:13.126
And then that will be saved for the next time

01:38:13.146 --> 01:38:14.727
that I move the schedule around.

01:38:15.147 --> 01:38:17.989
Now I guess theoretically someone could have an

01:38:18.309 --> 01:38:20.691
agent that says okay I give you access to my

01:38:20.791 --> 01:38:23.873
email, I give you access to the conference

01:38:23.913 --> 01:38:28.035
schedule web system or whatever database,

01:38:28.036 --> 01:38:31.178
and then I want you to update the database

01:38:31.179 --> 01:38:32.920
in case this happens,

01:38:33.480 --> 01:38:35.201
but it would be a lot more opaque to me.

01:38:35.261 --> 01:38:38.562
I wouldn't be able to say, I want to do that

01:38:38.563 --> 01:38:40.023
but I also want these other things to happen

01:38:40.083 --> 01:38:42.203
and I want the SVG to show up

01:38:42.204 --> 01:38:43.905
and I want the wiki to be changed.

01:38:44.365 --> 01:38:46.025
There's a lot of moving parts,

01:38:46.026 --> 01:38:48.326
and it's a lot harder for me to think of

01:38:48.327 --> 01:38:50.027
how to get in there and change things

01:38:50.028 --> 01:38:51.428
in case there's a bug

01:38:51.429 --> 01:38:53.428
or in case I wanted to see

01:38:53.429 --> 01:38:54.270
what else is possible.

01:38:55.447 --> 01:38:57.389
I like the fact that Emacs lets me

01:38:57.390 --> 01:39:01.917
build these interfaces using keyboard shortcuts

01:39:01.918 --> 01:39:04.201
and voice commands now, and all these other things.

01:39:04.202 --> 01:39:07.106
It feels like it's all together,

01:39:07.107 --> 01:39:07.708
and I don't have to

01:39:07.748 --> 01:39:08.830
keep reinventing the wheel.

NOTE
Workflows for planning livestreams
#+SCREENSHOT: Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years [Sw6sCMIypmk]-01-39-34-385.jpg
#+SCREENSHOT_TIME: 01:39:34.385

01:39:09.429 --> 01:39:10.230
[Linkarzu]: Yeah, yep.

01:39:10.630 --> 01:39:12.131
I do kind of something similar.

01:39:12.231 --> 01:39:14.512
This is the way that I schedule live streams now,

01:39:14.692 --> 01:39:15.333
you know?

01:39:15.433 --> 01:39:17.054
I have a snippet, Neovim.

01:39:17.314 --> 01:39:18.554
So I just type something here,

01:39:18.555 --> 01:39:20.995
live stream with a guest, open terminal,

01:39:20.996 --> 01:39:22.777
or if it's a solo live stream,

01:39:22.778 --> 01:39:24.178
that's going to add my snippets.

01:39:25.139 --> 01:39:28.160
And I just fill it up and I have a key map

01:39:28.161 --> 01:39:28.961
that I execute.

01:39:29.302 --> 01:39:32.164
It schedules the live stream, sends emails to the

01:39:32.184 --> 01:39:34.125
guests, if there are guests, you know?

01:39:34.385 --> 01:39:35.145
[Sacha]: Yeah, I got that too.

01:39:35.726 --> 01:39:36.186
[Linkarzu]: You have that?

01:39:36.686 --> 01:39:39.068
So it's one of the things that I'm...

01:39:39.859 --> 01:39:41.800
[Sacha]: Do you have it also update your YouTube

01:39:42.500 --> 01:39:44.041
stream description through API?

01:39:44.801 --> 01:39:46.982
[Linkarzu]: Yeah, the title, the description is

01:39:47.122 --> 01:39:47.762
right here.

01:39:48.562 --> 01:39:52.724
[Sacha]: Yeah. What else do I have in mine?

01:39:53.084 --> 01:39:57.086
Mine, I have it do the time zone conversions

01:39:57.166 --> 01:39:58.966
because I really suck at time zone conversions.

01:39:59.326 --> 01:40:03.331
[Linkarzu]: I choose UTC and I tell guests, you know?

01:40:03.332 --> 01:40:05.041
UTC it is.

01:40:05.042 --> 01:40:08.612
[Sacha]: But I also like including the gazillion

01:40:08.632 --> 01:40:11.654
time zone translations in the description so that

01:40:11.674 --> 01:40:14.155
people don't have to do the UTC conversion

01:40:14.195 --> 01:40:14.836
themselves.

01:40:15.616 --> 01:40:19.019
So based on the timestamp for the event, I have

01:40:19.039 --> 01:40:21.941
this thing that allows me to pick up the

01:40:23.902 --> 01:40:26.903
time zone translations, because I use that for

01:40:26.983 --> 01:40:28.923
EmacsConf and then I just generalize it so I can

01:40:28.963 --> 01:40:29.664
use it for everything.

01:40:30.484 --> 01:40:32.284
That can go into the YouTube description.

01:40:33.225 --> 01:40:36.346
Then I have the same entry get turned into

01:40:36.366 --> 01:40:39.386
the blog post afterwards because I can publish

01:40:39.426 --> 01:40:41.887
that with a transcript and the screenshots as I

01:40:41.907 --> 01:40:42.507
showed you before.

01:40:42.968 --> 01:40:44.448
[Linkarzu]: Okay. Automation.

01:40:44.488 --> 01:40:45.748
It's all about automation.

01:40:45.768 --> 01:40:47.489
[Sacha]: It is. It absolutely is.

01:40:48.769 --> 01:40:50.851
Oh, and the thing that I have which also lets me

01:40:50.891 --> 01:40:53.873
copy the chat and then if I paste it in, then I

01:40:53.893 --> 01:40:56.775
can have it reformatted so that it looks nicer

01:40:56.795 --> 01:40:58.236
because otherwise when you paste it in, there's

01:40:58.256 --> 01:40:59.257
lots of spaces and stuff.

01:40:59.277 --> 01:41:01.499
But that's a fairly easy text transformation thing,

01:41:01.899 --> 01:41:03.340
so you should be able to do something like that

01:41:03.360 --> 01:41:03.801
just fine.

NOTE Speech synthesis in Emacs: whispering slide hints

01:41:04.741 --> 01:41:06.041
[Linkarzu]: Let me show you something cool

01:41:06.042 --> 01:41:06.382
as well.

01:41:06.483 --> 01:41:10.365
heisenbug, can you please send us a speech to

01:41:10.405 --> 01:41:12.087
text command in chat?

01:41:12.807 --> 01:41:13.927
[Sacha]: Oh, yeah, I saw that one.

01:41:14.168 --> 01:41:15.788
[Linkarzu]: You should be able to hear it as well.

01:41:15.968 --> 01:41:16.428
You've seen it?

01:41:16.468 --> 01:41:18.669
[Sacha]: Yeah, I've heard that before in your

01:41:18.729 --> 01:41:20.410
other videos, which is actually...

01:41:21.870 --> 01:41:24.611
So one time I was giving an in-person

01:41:24.631 --> 01:41:26.671
presentation with Emacs, well,

01:41:26.672 --> 01:41:28.351
about Emacs at one of the DemoCamps,

01:41:28.352 --> 01:41:29.613
back when DemoCamp was a thing.

01:41:30.273 --> 01:41:32.295
Because I wasn't entirely sure about my

01:41:32.375 --> 01:41:34.856
ability to remember what my next slide was going

01:41:34.876 --> 01:41:38.439
to be about, I had Emacs do the speech synthesis

01:41:38.559 --> 01:41:42.421
of a hint for my next slide in the [background],

01:41:42.422 --> 01:41:45.444
in my earbuds -- earphones, back then.

01:41:45.864 --> 01:41:46.904
And someone was like,

01:41:46.905 --> 01:41:48.486
"Is Emacs telling you what to say?"

01:41:53.037 --> 01:41:54.958
Because speech synthesis is

01:41:55.078 --> 01:41:56.779
another channel that you can use to get

01:41:56.819 --> 01:41:57.439
information.

01:41:58.279 --> 01:41:59.060
So that's very cool.

NOTE Speech synthesis and chat

01:41:59.200 --> 01:42:01.941
I have been tempted to come up with something

01:42:02.021 --> 01:42:04.902
similar because I sometimes forget to check chat.

01:42:05.742 --> 01:42:07.863
But it's possible, for example, to have it say,

01:42:08.203 --> 01:42:11.405
okay, say it out to me first and then maybe I'll

01:42:11.445 --> 01:42:13.306
hit a keyboard shortcut and then it will say it

01:42:13.386 --> 01:42:14.525
again on the main channel

01:42:14.526 --> 01:42:15.667
that will go out in the stream.

01:42:15.727 --> 01:42:17.587
[Linkarzu]: So it's safe. Yeah.

01:42:19.008 --> 01:42:20.388
It becomes a mess because...

01:42:20.389 --> 01:42:22.190
I have it limited to members now.

01:42:22.451 --> 01:42:24.632
Only members can send the say command.

01:42:25.533 --> 01:42:29.214
When I was in the early testing phase,

01:42:29.215 --> 01:42:32.217
I enabled it for everyone. Guess what?

01:42:32.297 --> 01:42:34.998
The bots found it and they started sending

01:42:34.999 --> 01:42:37.080
say commands. Like it's going to happen, you know,

01:42:37.081 --> 01:42:38.542
and it's just going to run out of control.

01:42:39.733 --> 01:42:41.914
[Sacha]: The other reason why you can have that, right...

01:42:41.934 --> 01:42:44.954
So you have the chat and you have the TTS

01:42:44.955 --> 01:42:46.095
so that you know that something has happened

01:42:46.096 --> 01:42:46.876
in the chat,

01:42:47.376 --> 01:42:49.657
but then you can trigger it to play in the

01:42:49.717 --> 01:42:51.558
channel when you want to,

01:42:52.118 --> 01:42:54.478
possibly with a completion interface.

01:42:54.479 --> 01:42:55.939
You can select which utterance

01:42:55.940 --> 01:42:58.101
you want to have at the right time.

01:42:58.201 --> 01:43:00.060
So if people are having questions,

01:43:00.061 --> 01:43:02.181
you know that the question is there,

01:43:02.182 --> 01:43:03.502
but you can pick which question

01:43:03.503 --> 01:43:04.882
you want to focus on first,

01:43:04.883 --> 01:43:06.963
or you can wait for the natural pause

01:43:06.964 --> 01:43:08.485
in the conversation in

01:43:08.545 --> 01:43:10.934
order to have your speech synthesis.

01:43:10.935 --> 01:43:13.268
[Linkarzu]: Yeah, that's a good idea.

01:43:13.288 --> 01:43:13.748
It makes sense.

01:43:14.549 --> 01:43:15.009
[Sacha]: Yeah, right.

01:43:15.069 --> 01:43:17.110
So this back and forth

01:43:17.170 --> 01:43:20.413
brainstorming, it's totally possible to implement

01:43:20.473 --> 01:43:21.413
it in either way.

01:43:21.954 --> 01:43:24.574
I would end up implementing it in Emacs,

01:43:24.575 --> 01:43:25.815
of course, because then it can hook into

01:43:25.816 --> 01:43:26.997
all of my other stuff.

01:43:27.297 --> 01:43:29.719
But you can certainly implement it in whatever it

01:43:29.799 --> 01:43:32.361
is that you're using to listen to the TTS.

01:43:32.401 --> 01:43:34.862
Is that https://socialstream.ninja maybe?

01:43:35.083 --> 01:43:35.743
[Linkarzu]: SocialStream.

01:43:35.763 --> 01:43:36.243
Yep, yep, yep.

NOTE Comparing text-to-speech models

01:43:36.724 --> 01:43:38.365
I send it to Gemini.

01:43:40.687 --> 01:43:42.529
That's why it sounds accurate.

01:43:42.589 --> 01:43:45.391
I think Gemini is a pretty good one for that.

01:43:45.411 --> 01:43:46.172
[Sacha]: Yeah, it's pretty good.

01:43:46.692 --> 01:43:48.973
Yeah, for local speech-to-text,

01:43:48.974 --> 01:43:51.277
I've been using Kokoro.

01:43:51.537 --> 01:43:52.898
[Linkarzu]: But it sounds a little bit robotic,

01:43:52.978 --> 01:43:54.199
right? Yep, yep.

01:43:54.600 --> 01:43:57.801
[Sacha]: Yeah. Gemini is pretty good.

01:43:57.802 --> 01:43:59.924
There are so many different options now.

01:44:00.325 --> 01:44:01.105
It's fantastic.

NOTE Using speech synthesis as another information channel

01:44:01.646 --> 01:44:04.068
It does give you the other channel.

01:44:04.248 --> 01:44:07.891
Back a long time ago, in fourth year university,

01:44:07.951 --> 01:44:08.452
so 2003 or 2002,

01:44:12.655 --> 01:44:14.476
I was monitoring IRC.

01:44:14.516 --> 01:44:16.137
I had a lot of fun hanging out in IRC.

01:44:16.177 --> 01:44:18.998
I set up my Emacspeak so that if

01:44:19.638 --> 01:44:21.838
somebody mentioned me in the channel,

01:44:21.839 --> 01:44:25.281
it would say something. I could then go and study,

01:44:25.341 --> 01:44:27.502
but I had this thing of distraction.

01:44:27.522 --> 01:44:29.383
If someone wanted to talk to me

01:44:29.423 --> 01:44:30.844
specifically, I could hear about it.

01:44:31.724 --> 01:44:33.986
Likewise, having it announce things like

01:44:34.006 --> 01:44:38.510
"compilation is done" meant that during

01:44:38.530 --> 01:44:41.052
the nights where I was staying up late and

01:44:41.092 --> 01:44:43.273
catching little micro-naps while waiting

01:44:43.333 --> 01:44:47.357
for my code to finish, I could just have that

01:44:47.397 --> 01:44:50.179
micro-nap and then wake up when the ding or the

01:44:50.479 --> 01:44:51.400
announcement went off.

NOTE Automation

01:44:52.224 --> 01:44:55.647
[Linkarzu]: Oh, yeah. Like I say, automation.

01:44:55.807 --> 01:44:58.569
Once you try automating stuff like Emacs,

01:44:58.570 --> 01:45:00.531
Neovim... I think that's why we love the tools

01:45:00.532 --> 01:45:02.993
so much, because they just allow you to do

01:45:02.994 --> 01:45:04.315
whatever you want to do.

01:45:04.375 --> 01:45:05.636
There's no limits.

01:45:05.856 --> 01:45:07.557
No. You can do that.

01:45:07.558 --> 01:45:09.299
Up to you, up to whatever you want to do, right?

01:45:10.379 --> 01:45:12.600
[Sacha]: Yeah. And the nice thing about this,

01:45:12.601 --> 01:45:14.302
even if you're just smoothing things

01:45:14.303 --> 01:45:15.645
over a little at a time...

01:45:16.606 --> 01:45:19.087
It's very tempting to fall down

01:45:19.088 --> 01:45:19.869
the rabbit hole, right?

01:45:19.889 --> 01:45:22.251
You spend the next two hours

01:45:22.252 --> 01:45:23.233
tweaking something.

01:45:23.754 --> 01:45:24.715
This is my life, right?

01:45:25.335 --> 01:45:27.558
But it is also possible to try to be slightly

01:45:27.598 --> 01:45:29.159
disciplined about it and say, okay, I'm going to

01:45:29.239 --> 01:45:31.001
just modify one thing.

01:45:31.662 --> 01:45:33.984
I'm going to write one function or whatever,

01:45:34.104 --> 01:45:35.645
make this one little bit better.

01:45:36.066 --> 01:45:37.867
Then the next time you do it, you do another

01:45:37.927 --> 01:45:38.348
little bit.

01:45:38.728 --> 01:45:42.371
So there's that XKCD automation grid

01:45:42.411 --> 01:45:44.092
of when it makes sense to automate something.

01:45:44.172 --> 01:45:47.115
I find myself automating things that really

01:45:48.036 --> 01:45:50.718
aren't technically justified by how often I do it.

01:45:51.198 --> 01:45:53.921
But because all those little bits of code add up

01:45:54.141 --> 01:45:58.603
and they become useful in a combinatorial way...

01:45:58.663 --> 01:46:00.304
It's not just linearly adding up.

01:46:00.744 --> 01:46:01.644
Each little bit of code

01:46:01.645 --> 01:46:03.885
becomes a piece I can use somewhere else,

01:46:03.886 --> 01:46:05.026
for a purpose that's completely

01:46:05.126 --> 01:46:07.307
unexpected at that moment.

01:46:07.687 --> 01:46:08.788
It becomes so powerful.

01:46:09.276 --> 01:46:10.677
[Linkarzu]: Yeah, it does.

01:46:10.877 --> 01:46:14.160
If I need to prepare for a livestream, there's a

01:46:14.200 --> 01:46:15.642
lot of applications that you need to open.

01:46:15.662 --> 01:46:16.603
You need to open OBS.

01:46:16.843 --> 01:46:19.325
I need to open Chrome where the conversation

01:46:19.365 --> 01:46:20.786
between the two of us is happening.

01:46:21.026 --> 01:46:22.408
I need to open Socialstream.

01:46:22.668 --> 01:46:26.611
I need to open 10 or more than 10 applications.

01:46:27.392 --> 01:46:30.295
So I automated that.

01:46:30.695 --> 01:46:32.236
Even YouTube Studio is open.

01:46:33.197 --> 01:46:36.679
All of it, because it's annoying, but

01:46:36.719 --> 01:46:37.640
it's... Yeah, yeah.

01:46:38.180 --> 01:46:39.801
[Sacha]: I have a "Prepare to go live."

01:46:42.323 --> 01:46:44.484
It does it automatically for me too.

01:46:44.664 --> 01:46:48.966
It brings up the live streaming dashboard.

01:46:49.867 --> 01:46:52.028
It double-checks all these other things.

01:46:52.629 --> 01:46:54.930
Then it copies the description over in case

01:46:54.970 --> 01:46:56.411
I'm doing a spontaneous live stream.

01:46:56.891 --> 01:47:00.293
Then I can verify that and then I can say,

01:47:00.333 --> 01:47:01.334
okay, "Let's go live."

01:47:03.495 --> 01:47:04.175
[Linkarzu]: All right, Sacha.

01:47:04.856 --> 01:47:05.916
Amazing conversation.

01:47:06.136 --> 01:47:06.817
Thank you very much.

NOTE Clipping

01:47:07.217 --> 01:47:10.458
We're going to see if the editing workflow works.

01:47:10.618 --> 01:47:12.780
We're going to see a clip of this later today.

01:47:12.860 --> 01:47:14.540
Hopefully.

01:47:14.700 --> 01:47:16.301
We're going to see who gets it out first.

01:47:16.621 --> 01:47:17.242
That's a race.

01:47:17.382 --> 01:47:19.363
[Sacha]: Oh, I'm allowed to clip yours?

01:47:19.643 --> 01:47:19.943
[Linkarzu]: Yeah.

01:47:20.463 --> 01:47:21.124
You can clip it.

01:47:21.264 --> 01:47:21.884
It's fine.

01:47:22.004 --> 01:47:22.905
It's completely fine.

01:47:23.385 --> 01:47:23.765
[Sacha]: All right.

01:47:23.845 --> 01:47:25.206
[Linkarzu]: You're going to win. Emacs.

01:47:25.246 --> 01:47:27.467
[Sacha]: I already have my real-time transcript.

01:47:28.067 --> 01:47:29.388
[Linkarzu]: You already won. Yeah.

01:47:31.235 --> 01:47:31.676
[Sacha]: I don't know.

01:47:31.916 --> 01:47:35.660
I trust your editing chops, but I love being able

01:47:35.680 --> 01:47:36.280
to pull things out.

01:47:36.340 --> 01:47:38.262
I do want to make sure that all the cool

01:47:38.302 --> 01:47:40.565
things that people can build on will be available

01:47:40.645 --> 01:47:41.245
as text.

01:47:41.586 --> 01:47:43.428
I will go and edit the transcript and then you

01:47:43.468 --> 01:47:44.268
can use that too.

01:47:44.689 --> 01:47:45.009
[Linkarzu]: Okay.

01:47:45.530 --> 01:47:46.010
Amazing.

01:47:46.110 --> 01:47:47.472
Sacha, thank you very much.

01:47:47.532 --> 01:47:48.793
Hope you have a wonderful day.

01:47:49.073 --> 01:47:50.094
Thanks chat as well.

01:47:50.495 --> 01:47:52.357
Talk to you later.

01:47:52.377 --> 01:47:54.179
[Sacha]: All right. Okay. Bye.
